Re: [PATCH] net: Handle threadirqs in __napi_schedule_irqoff

From: Sean Anderson
Date: Fri Sep 13 2024 - 11:25:06 EST


On 9/13/24 11:16, Eric Dumazet wrote:
> On Fri, Sep 13, 2024 at 5:10 PM Sean Anderson <sean.anderson@xxxxxxxxx> wrote:
>>
>> The threadirqs kernel parameter can be used to force threaded IRQs even
>> on non-PREEMPT_RT kernels. Use force_irqthreads to determine if we can
>> skip disabling local interrupts. This defaults to false on regular
>> kernels, and is always true on PREEMPT_RT kernels.
>>
>> Signed-off-by: Sean Anderson <sean.anderson@xxxxxxxxx>
>> ---
>>
>> net/core/dev.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/core/dev.c b/net/core/dev.c
>> index 1e740faf9e78..112e871bc2b0 100644
>> --- a/net/core/dev.c
>> +++ b/net/core/dev.c
>> @@ -6202,7 +6202,7 @@ EXPORT_SYMBOL(napi_schedule_prep);
>> */
>> void __napi_schedule_irqoff(struct napi_struct *n)
>> {
>> - if (!IS_ENABLED(CONFIG_PREEMPT_RT))
>> + if (!force_irqthreads())
>> ____napi_schedule(this_cpu_ptr(&softnet_data), n);
>> else
>> __napi_schedule(n);
>> --
>> 2.35.1.1320.gc452695387.dirty
>>
>
> Seems reasonable, can you update the comment (kdoc) as well ?
>
> It says :
>
> * On PREEMPT_RT enabled kernels this maps to __napi_schedule()
> * because the interrupt disabled assumption might not be true
> * due to force-threaded interrupts and spinlock substitution.

OK

> Also always specify net or net-next for networking patches.

Ah, sorry. Should be net-next.

--Sean