On 2018年02月13日 22:35, Christoffer Dall wrote:
On Tue, Feb 13, 2018 at 10:15:20PM +0800, Jason Wang wrote:
On 2018年02月13日 21:21, Christoffer Dall wrote:
With v4.16-rc1 I see a low of these when running my KVM/ARM test loop:
BUG: using smp_processor_id() in preemptible [00000000] code: vhost-2877/2900
caller is debug_smp_processor_id+0x1c/0x28
CPU: 0 PID: 2900 Comm: vhost-2877 Not tainted 4.16.0-rc1 #1333
Hardware name: APM X-Gene Mustang board (DT)
Call trace:
dump_backtrace+0x0/0x180
show_stack+0x24/0x30
dump_stack+0x8c/0xac
check_preemption_disabled+0xf8/0x100
debug_smp_processor_id+0x1c/0x28
xdp_do_flush_map+0x24/0x48
tun_sendmsg+0x90/0xa0
handle_tx+0x254/0x548
handle_tx_kick+0x20/0x30
vhost_worker+0xc0/0x158
kthread+0x104/0x130
ret_from_fork+0x10/0x1c
I confirmed that reverting
762c330d670e, "tuntap: add missing xdp flush", 2018-02-07
solves the problem for me.
I'm not at all familiar with this part of the kernel and not sure what
the proper fix is. I'd be grateful if you could take a look and I'm
happy to help test etc.
Thanks for the reporting. Looking like it was because I try hard to do
batching for XDP devmap which seems a little hard since it assumes XDP was
running inside NAPI. Simply disable preemption can silent the warning but
may lead other issue e.g miss some CPU where the process run previously. The
only way is to disable batching now.
Please help to test the attached patch.
I can confirm that the patch solves the issue. I put some stress on a
VM using tuntap by running netperf in TCP_STREAM, TCP_MAERTS, and TCP_RR
on there, and I didn't see any warnings:
Tested-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Thanks,
-Christoffer
Thanks for the testing.
Will post a formal patch soon.