Subject: Re: [PATCH V7 0/8] ethtool per queue parameters support

From: Jeff Kirsher <[email-masked]>
Date: Fri, 19 Feb 2016 13:50:18 -0800

On Fri, 2016-02-19 at 09:23 -0500, Kan Liang wrote:
> Modern network interface controllers usually support multiple receive
> and transmit queues. Each queue may have its own parameters. For
> example, Intel XL710/X710 hardware supports per queue interrupt
> moderation. However, current ethtool does not support per queue
> parameters option. User has to set parameters for the whole NIC.
> This series extends ethtool to support per queue parameters option.
> 
> Since the support of per queue parameters vary with different cards,
> it is impossible to address all cards in one patch. This series only
> supports per queue coalesce options on i40e driver. The framework
> used
> in the patch can be easily extended to other cards and parameters.
> 
> The lib bitmap needs to be extended to facilitate exchanging queue
> bitmaps
> between user space and kernel space. Two patches from David's latest
> V8
> patch series are also cited in this series. You may refer to
> https://lkml.org/lkml/2016/2/9/919 for more details.
> 
> Changes since V6:
>  - Rebase on commit 76d13b568776. Did minor change in patch 6.
> 
> Changes since V5:
>  - Add test_bitmap.c and bitmap.sh in the series. They are forgot
>    to be added previously.
>  - Update the first two patches to David's latest V8 version. The
> changes
>    include
>       - bitmap u32 API returns number of bits copied, unit tests
> updated
>       - module_exit in test_bitmap
>  - Also change the mode of bitmap.sh to 755 according to Ben's
> suggestion
> 
> Changes since V4:
>  - Modify set/get_per_queue_coalesce function description
>  - Change the queue number to be u32
>  - Correct an error of calculating coalesce backup buffer address
>  - Rename queue_num to n_queues
>  - Don't log error message in __i40e_get_coalesce
> 
> Changes since V3:
>  - Based on David's lib bitmap.
>  - ETHTOOL_PERQUEUE should be handled before the containing switch
>  - Make the rollback code unconditional
>  - some minor changes according to Ben's feedback
> 
> Changes since V2:
>  - Add queue-specific settings for interrupt moderation in i40e
> 
> Changes since V1:
>  - Checking the sub-command number to determine whether the command
>    requires CAP_NET_ADMIN
>  - Refine the struct ethtool_per_queue_op and improve the comments
>  - Use bitmap functions to parse queue mask
>  - Improve comments
>  - Use bitmap functions to parse queue mask
>  - Improve comments
>  - Add rollback support
>  - Correct the way to find the vector for specific queue.
> 
> David Decotigny (2):
>   lib/bitmap.c: conversion routines to/from u32 array
>   test_bitmap: unit tests for lib/bitmap.c
> 
> Kan Liang (6)
>   net/ethtool: introduce a new ioctl for per queue setting
>   net/ethtool: support get coalesce per queue
>   net/ethtool: support set coalesce per queue
>   i40e: queue-specific settings for interrupt moderation
>   i40e/ethtool: support coalesce getting by queue
>   i40e/ethtool: support coalesce setting by queue
> 
>  drivers/net/ethernet/intel/i40e/i40e.h         |   7 -
>  drivers/net/ethernet/intel/i40e/i40e_debugfs.c |  15 +-
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 151 +++++++----
>  drivers/net/ethernet/intel/i40e/i40e_main.c    |  12 +-
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c    |   9 +-
>  drivers/net/ethernet/intel/i40e/i40e_txrx.h    |   8 +

Dave, I have pretty much cleared out my i40e queue of patches, so I am
fine if you want to apply the entire series (of course after proper
review) :-)