Re: irq_fpu_usable() is false in ndo_start_xmit() for UDP packets

From: David Miller
Date: Mon Nov 16 2015 - 15:32:23 EST


From: "Jason A. Donenfeld" <Jason@xxxxxxxxx>
Date: Mon, 16 Nov 2015 20:52:28 +0100

> This works fine with, say, iperf3 in TCP mode. The AVX performance
> is great. However, when using iperf3 in UDP mode, irq_fpu_usable()
> is mostly false! I added a dump_stack() call to see why, except
> nothing looks strange; the initial call in the stack trace is
> entry_SYSCALL_64_fastpath. Why would irq_fpu_usable() return false
> when we're in a syscall? Doesn't that mean this is in process
> context?

Network device driver transmit executes with software interrupts
disabled.

Therefore on x86, you cannot use the FPU.
--
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/