From: Sahil Chandna <sahilchandna@linux.microsoft.com>
To: Breno Leitao <leitao@debian.org>
Cc: haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@kernel.org,
kuba@kernel.org, pabeni@redhat.com, weh@microsoft.com,
kotaranov@microsoft.com, horms@kernel.org,
ernis@linux.microsoft.com, gargaditya@linux.microsoft.com,
linux-hyperv@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org
Subject: Re: [PATCH net-next] net: mana: Add CQE polling as first-level TX timeout recovery
Date: Fri, 13 Nov 2026 14:04:08 +0530 [thread overview]
Message-ID: <fc2ae552-86ee-40af-a997-454c2d3b176d@linux.microsoft.com> (raw)
In-Reply-To: <avWrMQK_DuZ1hAwD@gmail.com>
On 12-11-2026 17:37, Breno Leitao wrote:
> Hello Sahil,
>
> On Thu, Nov 12, 2026 at 04:57:18AM -0600, Sahil Chandna wrote:
>> Implement a graduated recovery approach: on the first TX timeout (or
>> when the previous timeout was more than 2 minutes ago), schedule NAPI on
>> the stalled queue's TX CQ via napi_schedule(). This triggers
>> mana_poll_tx_cq() through the normal NAPI path, processing any pending
>> completions without relying on the interrupt and recovering
>> missed-interrupt scenarios without queue reset.
>
> Which interrupt is being missed here?
>
Hi Breno,
It is the TX CQ completion interrupt. After NAPI finishes, it re-arms
the TX CQ. When a new CQE arrives, the hardware post EQE, which raises
the MSI-X and schedules NAPI. If that notification for the TX CQ is lost
, NAPI never runs for the TX CQ and pending_sends never drains and the
queue stays stopped, so napi_schedule() polls the CQ, reaps the CQEs
and re-arms it.
>> If any subsequent TX timeout fires on any queue, within 2 minutes of
>> the previous one, escalate to the existing port-level detach/attach
>> reset, as the CQE poll did not recover the queue.
>
> How was 2 minutes chosen? mana sets watchdog_timeo to 15 * HZ, no?
The watchdog_timeo is TX stall timeout setting i.e if a queue remains
stalled for this much time, it trigger watchdog timeout. Here, 2 minute
is not timeout/wait. The 2 minutes here is for deciding whether a new
queue stall event is a repeat of the previous incident or a new,
unrelated one that should get the cheap poll first. For e.g. if a queue
gets stalled, 15 * HZ sec later, timeout occurs and this patch trigger
manual NAPI, if another stall occurs (it can be on any queue) within 2
minutes of last one, the existing recovery mechanism of mana
detach/attach will be tried.The patch is adding a first level less
destructive recovery first.
For selecting 2 minutes, I do not have any hardware basis for it afaik,
but I can confirm and check with our host team as well.
Hope this helps !
Regards,
Sahil
prev parent reply other threads:[~2026-11-13 8:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-12 10:57 Sahil Chandna
2026-11-12 12:07 ` Breno Leitao
2026-11-13 8:34 ` Sahil Chandna [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=fc2ae552-86ee-40af-a997-454c2d3b176d@linux.microsoft.com \
--to=sahilchandna@linux.microsoft.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=decui@microsoft.com \
--cc=edumazet@kernel.org \
--cc=ernis@linux.microsoft.com \
--cc=gargaditya@linux.microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=horms@kernel.org \
--cc=kotaranov@microsoft.com \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=weh@microsoft.com \
--cc=wei.liu@kernel.org \
/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
all inboxes | Powered by JetHome®