Re: [PATCH] nvme: make firmware activation poll interval configurable

guzebing <[email protected]>
Newsgroups org.infradead.lists.linux-nvme,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

On 7/9/26 2:42 PM, Christoph Hellwig wrote:
> On Sat, Jun 27, 2026 at 09:06:10AM +0800, guzebing wrote:
>> From: Guzebing <[email protected]>
>>
>> nvme_fw_act_work() polls the controller processing-paused status every
>> 100 ms while firmware activation is pending. Some devices can complete
>> online activation in only a few hundred milliseconds, so the fixed
>> interval can add noticeable latency before the driver observes
>> completion.
>>
>> Add an nvme_core.fw_act_poll_interval_ms module parameter to make the
>> poll interval tunable. Keep the default at 100 ms to preserve existing
>> behavior, and accept values from 10 ms to 100 ms so systems that need
>> faster completion detection can opt in to a shorter interval.
>>
>> Signed-off-by: Guzebing <[email protected]>
>> ---
>> We recently observed this issue while performing online firmware
>> updates for Gen5 NVMe SSDs in a production environment.
>>
>> During firmware activation, the kernel quiesces I/O. Detecting the end
>> of firmware activation earlier lets the driver unquiesce I/O earlier,
>> which is important for the long-tail I/O latency of production
>> workloads.
> 
> What value does this device report in the Maximum Time for Firmware
> Activation (MTFA) field?  It might make sense to scale the polling
> time as a fraction of that instead of requiring a manual override.
> 

The Samsung PM9D3a Gen5 SSD reports MTFA = 10, i.e. 1000 ms.

I also checked another device, an Intel/Solidigm P5520 Gen4 drive.  It
reports MTFA = 100, i.e. 10000 ms, while the observed online activation
time is about 800 ms.

I agree that deriving the polling interval from MTFA would be better
than adding a module parameter.  Given that MTFA is a conservative upper
bound rather than a good estimate of the common activation time, would
using a small fraction of it, for example MTFA / 100 clamped to 10..100
ms, be a reasonable policy for v2?

That would give 10 ms for the PM9D3a device above, while keeping the
current 100 ms interval for the P5520 case and for large-MTFA devices.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.