Re: [RFC PATCH 0/3] kernel: add support for 256-bit IO access
flat view
From: Andy Lutomirski <luto@kernel.org>
Date: 2018-03-22 17:44:29
Also in:
lkml
On Thu, Mar 22, 2018 at 5:40 PM, Alexei Starovoitov [off-list ref] wrote:
On Thu, Mar 22, 2018 at 10:33:43AM +0100, Ingo Molnar wrote:quoted
- I think the BPF JIT, whose byte code machine languge is used by an increasing number of kernel subsystems, could benefit from having vector ops. It would possibly allow the handling of floating point types.this is on our todo list already. To process certain traffic inside BPF in XDP we'd like to have access to floating point. The current workaround is to precompute the math and do bpf map lookup instead. Since XDP processing of packets is batched (typically up to napi budget of 64 packets at a time), we can, in theory, wrap the loop with kernel_fpu_begin/end and it will be cleaner and faster, but the work hasn't started yet. The microbenchmark numbers you quoted for xsave/xrestore look promising, so we probably will focus on it soon. Another use case for vector insns is to accelerate fib/lpm lookups which is likely beneficial for kernel overall regardless of bpf usage.
This is a further argument for the deferred restore approach IMO. With deferred restore, kernel_fpu_begin() + kernel_fpu_end() has very low amortized cost as long as we do lots of work in the kernel before re-entering userspace. For XDP workloads, this could be a pretty big win, I imagine. Someone just needs to do the nasty x86 work.