Message ID | dc171e2288d2755b1805afde6b394d2d443a134d.1697093455.git.hengqi@linux.alibaba.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio-net: support dynamic coalescing moderation | expand |
Context | Check | Description |
---|---|---|
netdev/series_format | success | Posting correctly formatted |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | fail | Errors and warnings before: 1361 this patch: 16 |
netdev/cc_maintainers | success | CCed 9 of 9 maintainers |
netdev/build_clang | fail | Errors and warnings before: 1386 this patch: 21 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/deprecated_api | success | None detected |
netdev/check_selftest | success | No net selftest shell script |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | fail | Errors and warnings before: 1388 this patch: 16 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 49 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Thu, 12 Oct 2023 15:44:06 +0800 Heng Qi wrote: > + > +static int virtnet_send_rx_notf_coal_cmds(struct virtnet_info *vi, > + struct ethtool_coalesce *ec) > +{ > + struct scatterlist sgs_rx; > + ../drivers/net/virtio_net.c: In function ‘virtnet_send_rx_notf_coal_cmds’: ../drivers/net/virtio_net.c:3306:14: error: ‘i’ undeclared (first use in this function); did you mean ‘vi’? 3306 | for (i = 0; i < vi->max_queue_pairs; i++) { | ^ | vi
在 2023/10/14 上午9:11, Jakub Kicinski 写道: > On Thu, 12 Oct 2023 15:44:06 +0800 Heng Qi wrote: >> + >> +static int virtnet_send_rx_notf_coal_cmds(struct virtnet_info *vi, >> + struct ethtool_coalesce *ec) >> +{ >> + struct scatterlist sgs_rx; >> + > ../drivers/net/virtio_net.c: In function ‘virtnet_send_rx_notf_coal_cmds’: > ../drivers/net/virtio_net.c:3306:14: error: ‘i’ undeclared (first use in this function); did you mean ‘vi’? > 3306 | for (i = 0; i < vi->max_queue_pairs; i++) { > | ^ > | vi Will fix in the next version. Thanks!
On Mon, Oct 16, 2023 at 03:45:38PM +0800, Heng Qi wrote: > > > 在 2023/10/14 上午9:11, Jakub Kicinski 写道: > > On Thu, 12 Oct 2023 15:44:06 +0800 Heng Qi wrote: > > > + > > > +static int virtnet_send_rx_notf_coal_cmds(struct virtnet_info *vi, > > > + struct ethtool_coalesce *ec) > > > +{ > > > + struct scatterlist sgs_rx; > > > + > > ../drivers/net/virtio_net.c: In function ‘virtnet_send_rx_notf_coal_cmds’: > > ../drivers/net/virtio_net.c:3306:14: error: ‘i’ undeclared (first use in this function); did you mean ‘vi’? > > 3306 | for (i = 0; i < vi->max_queue_pairs; i++) { > > | ^ > > | vi > > Will fix in the next version. > > Thanks! OK, however pls do test individual patches as well as the whole patchset.
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index cf5d2ef4bd24..54b3fb8d0384 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -3260,10 +3260,10 @@ static int virtnet_get_link_ksettings(struct net_device *dev, return 0; } -static int virtnet_send_notf_coal_cmds(struct virtnet_info *vi, - struct ethtool_coalesce *ec) +static int virtnet_send_tx_notf_coal_cmds(struct virtnet_info *vi, + struct ethtool_coalesce *ec) { - struct scatterlist sgs_tx, sgs_rx; + struct scatterlist sgs_tx; int i; vi->ctrl->coal_tx.tx_usecs = cpu_to_le32(ec->tx_coalesce_usecs); @@ -3283,6 +3283,14 @@ static int virtnet_send_notf_coal_cmds(struct virtnet_info *vi, vi->sq[i].intr_coal.max_packets = ec->tx_max_coalesced_frames; } + return 0; +} + +static int virtnet_send_rx_notf_coal_cmds(struct virtnet_info *vi, + struct ethtool_coalesce *ec) +{ + struct scatterlist sgs_rx; + vi->ctrl->coal_rx.rx_usecs = cpu_to_le32(ec->rx_coalesce_usecs); vi->ctrl->coal_rx.rx_max_packets = cpu_to_le32(ec->rx_max_coalesced_frames); sg_init_one(&sgs_rx, &vi->ctrl->coal_rx, sizeof(vi->ctrl->coal_rx)); @@ -3303,6 +3311,22 @@ static int virtnet_send_notf_coal_cmds(struct virtnet_info *vi, return 0; } +static int virtnet_send_notf_coal_cmds(struct virtnet_info *vi, + struct ethtool_coalesce *ec) +{ + int err; + + err = virtnet_send_tx_notf_coal_cmds(vi, ec); + if (err) + return err; + + err = virtnet_send_rx_notf_coal_cmds(vi, ec); + if (err) + return err; + + return 0; +} + static int virtnet_send_ctrl_coal_vq_cmd(struct virtnet_info *vi, u16 vqn, u32 max_usecs, u32 max_packets) {
This patch separates the rx and tx global coalescing moderation commands to support netdim switches in subsequent patches. Signed-off-by: Heng Qi <hengqi@linux.alibaba.com> --- drivers/net/virtio_net.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-)