Re: irq_fpu_usable() is false in ndo_start_xmit() for UDP packets
From: Hannes Frederic Sowa
Date: Mon Nov 16 2015 - 17:27:19 EST
On Mon, Nov 16, 2015, at 21:58, Jason A. Donenfeld wrote:
> Hi David,
> On Mon, Nov 16, 2015 at 9:32 PM, David Miller <davem@xxxxxxxxxxxxx>
> > Network device driver transmit executes with software interrupts
> > disabled.
> > Therefore on x86, you cannot use the FPU.
> That is extremely problematic for me. Is there a way to make this not
> so? A driver flag that would allow this?
> Also - how come it irq_fpu_usable() is true when using TCP but not
> when using UDP?
> Further, irq_fpu_usable() doesn't only check for interrupts. There are
> two other conditions that allow the FPU's usage, from
> bool irq_fpu_usable(void)
> return !in_interrupt() ||
> interrupted_user_mode() ||
Use the irqsoff tracer to find the problematic functions which disable
interrupts and try to work around it in case of UDP. This could benefit
the whole stack.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/