Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Aleksandr Loktionov" <aleksandr.loktionov@intel.com>,
	intel-wired-lan@lists.osuosl.org
Subject: Re: [PATCH iwl-next 8/8] ixgbe: add IXGBE_ITR_ADAPTIVE_MASK_USECS constant
Date: Fri, 30 Oct 2026 04:54:00 +0000	[thread overview]
Message-ID: <sashiko-outbox-190395@kernel.org> (raw)
In-Reply-To: <20260508031226.3601800-9-aleksandr.loktionov@intel.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The min() comparison evaluates unmasked ITR values containing the latency flag, incorrectly causing the driver to choose larger bulk delays over smaller latency delays.
--

commit e683a9d65e2e630a93fdde9696800531a58f1ed8
Author: Alexander Duyck <alexander.h.duyck@intel.com>

ixgbe: add IXGBE_ITR_ADAPTIVE_MASK_USECS constant

This commit introduces the IXGBE_ITR_ADAPTIVE_MASK_USECS constant for the
ixgbe driver. It replaces an open-coded bitwise complement expression in
ixgbe_set_itr() with an equivalent but more readable bitwise AND using the
new mask.

[ ... ]

> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 395f556c76e04..f27702962eaac 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -2959,7 +2959,7 @@ static void ixgbe_set_itr(struct ixgbe_q_vector *q_vector)
>  	new_itr = min(q_vector->rx.itr, q_vector->tx.itr);

Does this code inadvertently compare unmasked ITR values that still contain
the latency flag?

The q_vector->rx.itr and q_vector->tx.itr variables contain both the computed
delay (bits 0-6) and the IXGBE_ITR_ADAPTIVE_LATENCY flag (bit 7, 0x80). When
comparing them via min(), the latency flag makes the latency-optimized delay
numerically larger. For example, a latency delay of 10 is 10 | 0x80 = 138,
while a bulk delay of 100 is just 100.

Consequently, min() erroneously chooses the larger bulk delay over the smaller
latency delay. This seems to violate the explicit comment to 'use the
smallest value of new ITR delay calculations' and may penalize
latency-sensitive traffic on mixed workloads.

Could the new IXGBE_ITR_ADAPTIVE_MASK_USECS mask be applied before the min()
comparison to ensure it compares the actual usecs values?

>  
>  	/* Clear latency flag if set, shift into correct position */
> -	new_itr &= ~IXGBE_ITR_ADAPTIVE_LATENCY;
> +	new_itr &= IXGBE_ITR_ADAPTIVE_MASK_USECS;
>  	new_itr <<= 2;
>  
>  	if (new_itr != q_vector->itr) {

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260508031226.3601800-1-aleksandr.loktionov@intel.com?part=8

      parent reply	other threads:[~2026-10-30  4:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-08  3:12 [Intel-wired-lan] [PATCH iwl-next 0/8] ixgbe: small cleanups and improvements Aleksandr Loktionov
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 1/8] ixgbe: rename numa_node to node in struct ixgbe_q_vector Aleksandr Loktionov
2026-05-11 15:27   ` Simon Horman
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 2/8] ixgbe: use int instead of u32 for error code variables Aleksandr Loktionov
2026-05-08  4:15   ` Przemek Kitszel
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 3/8] ixgbe: prevent adding duplicate FDIR perfect filter rules Aleksandr Loktionov
2026-05-08  4:44   ` Przemek Kitszel
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 4/8] ixgbe: increase SECRX_RDY polling frequency in ixgbe_disable_rx_buff_generic Aleksandr Loktionov
2026-05-11 15:30   ` Simon Horman
2026-10-30  4:53   ` sashiko-bot
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 5/8] ixgbe: use ktime_get_real_ns() in ixgbe_ptp_reset() Aleksandr Loktionov
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 6/8] ixgbe: extract ixgbe_restart_auto_neg() to avoid code duplication Aleksandr Loktionov
2026-05-11 15:40   ` Simon Horman
2026-05-12 13:42     ` Loktionov, Aleksandr
2026-05-13 12:13       ` Simon Horman
2026-10-30  4:54   ` sashiko-bot
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 7/8] ixgbe: limit ITR decrease in latency mode to prevent ACK overdrive Aleksandr Loktionov
2026-05-11 15:47   ` Simon Horman
2026-05-08  3:12 ` [Intel-wired-lan] [PATCH iwl-next 8/8] ixgbe: add IXGBE_ITR_ADAPTIVE_MASK_USECS constant Aleksandr Loktionov
2026-05-11 15:52   ` Simon Horman
2026-10-30  4:54   ` sashiko-bot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-190395@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=aleksandr.loktionov@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox