On 21.06.2024 09:25, Kurt Kanzenbach wrote:
> Add support for offloading MQPRIO. The hardware has four priorities as well
> as four queues. Each queue must be a assigned with a unique priority.
> 
> However, the priorities are only considered in TSN Tx mode. There are two
> TSN Tx modes. In case of MQPRIO the Qbv capability is not required.
> Therefore, use the legacy TSN Tx mode, which performs strict priority
> arbitration.
> 
> Example for mqprio with hardware offload:
> 
> |tc qdisc replace dev ${INTERFACE} handle 100 parent root mqprio num_tc 4 \
> |   map 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0 0 \
> |   queues 1@0 1@1 1@2 1@3 \
> |   hw 1
> 
> The mqprio Qdisc also allows to configure the `preemptible_tcs'. However,
> frame preemption is not supported yet.
> 
> Tested on Intel i225 and implemented by following data sheet section 7.5.2,
> Transmit Scheduling.
> 
> Signed-off-by: Kurt Kanzenbach <k...@linutronix.de>
> ---

Thank you!
Reviewed-by: Wojciech Drewek <wojciech.dre...@intel.com>

> Changes in v3:
> - Use FIELD_PREP for Tx ARB (Simon)
> - Add helper for Tx ARB configuration (Simon)
> - Limit ethtool_set_channels when mqprio is enabled (Jian)
> - Link to v2: 
> https://lore.kernel.org/r/20240212-igc_mqprio-v2-1-587924e6b...@linutronix.de
> 
> Changes in v2:
> - Improve changelog (Paul Menzel)
> - Link to v1: 
> https://lore.kernel.org/r/20240212-igc_mqprio-v1-1-7aed95b73...@linutronix.de
> ---
>  drivers/net/ethernet/intel/igc/igc.h         | 10 +++-
>  drivers/net/ethernet/intel/igc/igc_defines.h | 11 +++++
>  drivers/net/ethernet/intel/igc/igc_ethtool.c |  4 ++
>  drivers/net/ethernet/intel/igc/igc_main.c    | 69 +++++++++++++++++++++++++++
>  drivers/net/ethernet/intel/igc/igc_regs.h    |  2 +
>  drivers/net/ethernet/intel/igc/igc_tsn.c     | 70 
> +++++++++++++++++++++++++++-
>  6 files changed, 163 insertions(+), 3 deletions(-)
> 

<...>

Reply via email to