Re: [PATCH bpf-next 2/4] xsk: allow AF_XDP sockets to receive packets directly from a queue
From: Alexei Starovoitov <hidden>
Date: 2019-10-09 01:20:29
Also in:
bpf, intel-wired-lan
From: Alexei Starovoitov <hidden>
Date: 2019-10-09 01:20:29
Also in:
bpf, intel-wired-lan
On Mon, Oct 7, 2019 at 11:18 PM Sridhar Samudrala [off-list ref] wrote:
+
+u32 bpf_direct_xsk(const struct bpf_prog *prog, struct xdp_buff *xdp)
+{
+ struct xdp_sock *xsk;
+
+ xsk = xdp_get_xsk_from_qid(xdp->rxq->dev, xdp->rxq->queue_index);
+ if (xsk) {
+ struct bpf_redirect_info *ri = this_cpu_ptr(&bpf_redirect_info);
+
+ ri->xsk = xsk;
+ return XDP_REDIRECT;
+ }
+
+ return XDP_PASS;
+}
+EXPORT_SYMBOL(bpf_direct_xsk);So you're saying there is a: """ xdpsock rxdrop 1 core (both app and queue's irq pinned to the same core) default : taskset -c 1 ./xdpsock -i enp66s0f0 -r -q 1 direct-xsk :taskset -c 1 ./xdpsock -i enp66s0f0 -r -q 1 6.1x improvement in drop rate """ 6.1x gain running above C code vs exactly equivalent BPF code? How is that possible?