[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211208175331.35661ccd@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Wed, 8 Dec 2021 17:53:31 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: <xiayu.zhang@...iatek.com>
Cc: <loic.poulain@...aro.org>, <ryazanov.s.a@...il.com>,
<davem@...emloft.net>, <johannes@...solutions.net>,
<netdev@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<haijun.liu@...iatek.com>, <zhaoping.shu@...iatek.com>,
<hw.he@...iatek.com>, <srv_heupstream@...iatek.com>
Subject: Re: [PATCH] Add Multiple TX/RX Queues Support for WWAN Network
Device
On Wed, 8 Dec 2021 12:04:14 +0800 xiayu.zhang@...iatek.com wrote:
> From: Xiayu Zhang <Xiayu.Zhang@...iatek.com>
>
> This patch adds 2 callback functions get_num_tx_queues() and
> get_num_rx_queues() to let WWAN network device driver customize its own
> TX and RX queue numbers. It gives WWAN driver a chance to implement its
> own software strategies, such as TX Qos.
>
> Currently, if WWAN device driver creates default bearer interface when
> calling wwan_register_ops(), there will be only 1 TX queue and 1 RX queue
> for the WWAN network device. In this case, driver is not able to enlarge
> the queue numbers by calling netif_set_real_num_tx_queues() or
> netif_set_real_num_rx_queues() to take advantage of the network device's
> capability of supporting multiple TX/RX queues.
>
> As for additional interfaces of secondary bearers, if userspace service
> doesn't specify the num_tx_queues or num_rx_queues in netlink message or
> iproute2 command, there also will be only 1 TX queue and 1 RX queue for
> each additional interface. If userspace service specifies the num_tx_queues
> and num_rx_queues, however, these numbers could be not able to match the
> capabilities of network device.
>
> Besides, userspace service is hard to learn every WWAN network device's
> TX/RX queue numbers.
>
> In order to let WWAN driver determine the queue numbers, this patch adds
> below callback functions in wwan_ops:
> struct wwan_ops {
> unsigned int priv_size;
> ...
> unsigned int (*get_num_tx_queues)(unsigned int hint_num);
> unsigned int (*get_num_rx_queues)(unsigned int hint_num);
> };
>
> WWAN subsystem uses the input parameters num_tx_queues and num_rx_queues of
> wwan_rtnl_alloc() as hint values, and passes the 2 values to the two
> callback functions. WWAN device driver should determine the actual numbers
> of network device's TX and RX queues according to the hint value and
> device's capabilities.
I'll mark it as an RFC in patchwork, there needs to be an in-tree user
for this code to be merged.
Powered by blists - more mailing lists