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