Re: [PATCH net v2 2/2] tuntap: correctly add the missing xdp flush

From: Jason Wang
Date: Thu Feb 22 2018 - 04:35:13 EST




On 2018å02æ22æ 15:54, Sergei Shtylyov wrote:
Hello!

On 2/22/2018 9:24 AM, Jason Wang wrote:

Commit 762c330d670e ("tuntap: add missing xdp flush") tries to fix the
devmap stall caused by missed xdp flush by counting the pending xdp
redirected packets and flush when it exceeds NAPI_POLL_WEIGHT or
MSG_MORE is clear. This may lead BUG() since xdp_do_flush() was

ÂÂ Lead to BUG().

called under process context with preemption enabled. Simply disable

ÂÂ s/under/in the/?

preemption may silent the warning but be not enough since process may

ÂÂ Silence.

move between different CPUS during a batch which cause xdp_do_flush()
misses some CPU where the process run previously. Consider the several
fallouts, that commit was reverted. To fix the issue correctly, we can
simply calling xdp_do_flush() immediately after xdp_do_redirect(),

ÂÂ Call.

a side effect is that this removes any possibility of batching which
could be addressed in the future.

Reported-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Fixes: 762c330d670e ("tuntap: add missing xdp flush")
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
[...]

MBR, Sergei

My bad, let me post v3.

Thanks