Re: [BUG] tuntap: using smp_processor_id() in preemptible from xdp flush

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux