Re: [linux-next] oops in ip_route_input_noref
On 9/18/15 5:06 PM, Andrew Morton wrote: I've been hitting this as well. An oops on boot in ip_route_input_slow(), here: Fixed in net-next. bde6f9ded1bd37ff27a042dcb968e104d92b02c1 David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On Thu, 17 Sep 2015 10:58:52 +0200 Thierry Redingwrote: > On Wed, Sep 16, 2015 at 09:04:15AM -0600, David Ahern wrote: > > On 9/16/15 9:00 AM, Fabio Estevam wrote: > > >On Wed, Sep 16, 2015 at 6:24 AM, Sergey Senozhatsky > > > wrote: > > > > > >>added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 > > >> > > >> net: Add FIB table id to rtable > > >> > > >> Add the FIB table id to rtable to make the information available for > > >> IPv4 as it is for IPv6. > > > > > >I see the same issue here when booting a mx25 ARM processor via NFS. > > > > > >defconfig is arch/arm/configs/imx_v4_v5_defconfig. > > > > > > > I am still not able to reproduce. While I work on a full Cumulus image for > > other test cases here's a patch to try; eagle eye Nikolay noted a potential > > use without init in the maze of goto's. > > > > Thanks, > > David > > > diff --git a/net/ipv4/route.c b/net/ipv4/route.c > > index da427a4a33fe..80f7c5b7b832 100644 > > --- a/net/ipv4/route.c > > +++ b/net/ipv4/route.c > > @@ -1712,6 +1712,7 @@ static int ip_route_input_slow(struct sk_buff *skb, > > __be32 daddr, __be32 saddr, > > goto martian_source; > > > > res.fi = NULL; > > + res.table = NULL; > > if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0)) > > goto brd_input; > > > > @@ -1834,6 +1835,7 @@ out: return err; > > RT_CACHE_STAT_INC(in_no_route); > > res.type = RTN_UNREACHABLE; > > res.fi = NULL; > > + res.table = NULL; > > goto local_input; > > > > /* > > I was seeing the same oops as Fabio (except that the faulting address > was 0xb instead of 0x7) and after applying this patch I no longer see > it: > > Tested-by: Thierry Reding I've been hitting this as well. An oops on boot in ip_route_input_slow(), here: #ifdef CONFIG_IP_ROUTE_CLASSID rth->dst.tclassid = itag; #endif rth->rt_is_input = 1; if (res.table) -->>rth->rt_table_id = res.table->tb_id; RT_CACHE_STAT_INC(in_slow_tot); I did this, which made it go away: --- a/net/ipv4/route.c~a +++ a/net/ipv4/route.c @@ -1692,6 +1692,8 @@ static int ip_route_input_slow(struct sk struct net*net = dev_net(dev); bool do_cache; + res.table = 0; + /* IP on this device is disabled. */ if (!in_dev) _ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 17 September 2015 at 01:47, Sergey Senozhatskywrote: > On (09/16/15 07:07), David Ahern wrote: >> Hi Sergey: >> > > Hi, > > sorry for long reply. Baremetal. So grabbing the backtrace is > a bit complicated. But it looks very close to what Richard Alpe > has posted. Hi, in this boot log you will find a backtrace: https://lava.collabora.co.uk/scheduler/job/67404/log_file (ip_route_input_noref) from [] (ip_rcv+0x39c/0x6e8) (ip_rcv) from [] (__netif_receive_skb_core+0x5ec/0x7c0) (__netif_receive_skb_core) from [] (netif_receive_skb_internal+0x34/0xa4) (netif_receive_skb_internal) from [] (napi_gro_receive+0x78/0xa4) (napi_gro_receive) from [] (rtl8169_poll+0x2dc/0x5dc) (rtl8169_poll) from [] (net_rx_action+0x1d4/0x2d0) (net_rx_action) from [] (__do_softirq+0xfc/0x214) (__do_softirq) from [] (irq_exit+0xb0/0x118) (irq_exit) from [] (__handle_domain_irq+0x60/0xb4) (__handle_domain_irq) from [] (gic_handle_irq+0x54/0x94) (gic_handle_irq) from [] (__irq_svc+0x54/0x70) This is on a jetson-tk1 booting a multi_v7_defconfig kernel. I expect this issue to appear in today's kernelci.org boots. I don't see this or any other boot error after applying David's patch. Regards, Tomeu > in IRQ > > RIP is at ip_route_input_noref > > [0.877597] [] arp_process+0x39c/0x690 > [0.877597] [] arp_rcv+0x13e/0x170 > > > -ss > > >> Is this with KVM or baremetal? >> >> -8<- >> thanks for the analysis >> >> >>addr2line -e vmlinux -i 0x8146c0b1 >> >>net/ipv4/route.c:1815 >> >>net/ipv4/route.c:1905 >> >> >> >> >> >>which seems to be this line ip_route_input_noref()->ip_route_input_slow(): >> >>... >> >>1813 rth->rt_is_input = 1; >> >>1814 if (res.table) >> >>1815 rth->rt_table_id = res.table->tb_id; >> >>1816 >> >>... >> >> >> >> >> >>added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 >> >> >> >> net: Add FIB table id to rtable >> >> >> >> Add the FIB table id to rtable to make the information available for >> >> IPv4 as it is for IPv6. >> >> >> >> >> >>-ss >> >> Hi Richard: >> >> >I to get an Oops in ip_route_input_noref(). It happens occasionally during >> >bootup. >> >KVM environment using virtio driver. Let me know if you need any additional >> >info or >> >if you want me to try to bisect it. >> > >> >Starting network... >> >... >> >[0.877040] BUG: unable to handle kernel NULL pointer dereference at >> >0056 >> >[0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 >> >> Can you send me your kernel config and qemu command line? KVM with virtio >> networking is a primary test vehicle, and I did not encounter this at all. >> >> Thanks, >> David >> >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On Wed, Sep 16, 2015 at 09:04:15AM -0600, David Ahern wrote: > On 9/16/15 9:00 AM, Fabio Estevam wrote: > >On Wed, Sep 16, 2015 at 6:24 AM, Sergey Senozhatsky > >wrote: > > > >>added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 > >> > >> net: Add FIB table id to rtable > >> > >> Add the FIB table id to rtable to make the information available for > >> IPv4 as it is for IPv6. > > > >I see the same issue here when booting a mx25 ARM processor via NFS. > > > >defconfig is arch/arm/configs/imx_v4_v5_defconfig. > > > > I am still not able to reproduce. While I work on a full Cumulus image for > other test cases here's a patch to try; eagle eye Nikolay noted a potential > use without init in the maze of goto's. > > Thanks, > David > diff --git a/net/ipv4/route.c b/net/ipv4/route.c > index da427a4a33fe..80f7c5b7b832 100644 > --- a/net/ipv4/route.c > +++ b/net/ipv4/route.c > @@ -1712,6 +1712,7 @@ static int ip_route_input_slow(struct sk_buff *skb, > __be32 daddr, __be32 saddr, > goto martian_source; > > res.fi = NULL; > + res.table = NULL; > if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0)) > goto brd_input; > > @@ -1834,6 +1835,7 @@ out:return err; > RT_CACHE_STAT_INC(in_no_route); > res.type = RTN_UNREACHABLE; > res.fi = NULL; > + res.table = NULL; > goto local_input; > > /* I was seeing the same oops as Fabio (except that the faulting address was 0xb instead of 0x7) and after applying this patch I no longer see it: Tested-by: Thierry Reding signature.asc Description: PGP signature
[linux-next] oops in ip_route_input_noref
Hi, 4.3.0-rc1-next-20150916 oops after removal of rndis usb device ... 8146c052: 00 8146c053: 0f b6 55 8a movzbl -0x76(%rbp),%edx 8146c057: 49 8b bf e8 01 00 00mov0x1e8(%r15),%rdi 8146c05e: 45 89 d1mov%r10d,%r9d 8146c061: 44 89 f6mov%r14d,%esi 8146c064: 44 88 95 70 ff ff ffmov%r10b,-0x90(%rbp) 8146c06b: 0f 95 c1setne %cl 8146c06e: 81 ce 00 00 00 80 or $0x8000,%esi 8146c074: 41 83 e1 01 and$0x1,%r9d 8146c078: 45 31 c0xor%r8d,%r8d 8146c07b: e8 49 d5 ff ff callq 814695c9 8146c080: 48 85 c0test %rax,%rax 8146c083: 49 89 c5mov%rax,%r13 8146c086: 75 0a jne8146c0928146c088: bb 97 ff ff ff mov$0xff97,%ebx 8146c08d: e9 06 f8 ff ff jmpq 8146b898 8146c092: 48 c7 40 58 a3 95 46movq $0x814695a3,0x58(%rax) 8146c099: 81 8146c09a: c6 80 a2 00 00 00 01movb $0x1,0xa2(%rax) 8146c0a1: 48 8b 45 98 mov-0x68(%rbp),%rax 8146c0a5: 44 8a 95 70 ff ff ffmov-0x90(%rbp),%r10b 8146c0ac: 48 85 c0test %rax,%rax 8146c0af: 74 0a je 8146c0bb 8146c0b1: 8b 40 10mov0x10(%rax),%eax ^^^ 8146c0b4: 41 89 85 b0 00 00 00mov%eax,0xb0(%r13) 8146c0bb: 65 ff 05 9e 54 ba 7eincl %gs:0x7eba549e(%rip) # 11560 8146c0c2: 80 7d 8a 07 cmpb $0x7,-0x76(%rbp) 8146c0c6: 75 1a jne8146c0e2 8146c0c8: 41 81 a5 9c 00 00 00andl $0x7fff,0x9c(%r13) 8146c0cf: ff ff ff 7f 8146c0d3: f7 db neg%ebx 8146c0d5: 49 c7 45 50 b1 96 46movq $0x814696b1,0x50(%r13) 8146c0dc: 81 8146c0dd: 66 41 89 5d 64 mov%bx,0x64(%r13) 8146c0e2: 45 84 d2test %r10b,%r10b 8146c0e5: 74 29 je 8146c110 8146c0e7: 0f b6 7d 89 movzbl -0x77(%rbp),%edi 8146c0eb: 4c 89 eemov%r13,%rsi 8146c0ee: 48 ff c7inc%rdi 8146c0f1: 48 6b ff 60 imul $0x60,%rdi,%rdi 8146c0f5: 48 03 7d 90 add-0x70(%rbp),%rdi 8146c0f9: e8 10 d1 ff ff callq 8146920e 8146c0fe: 84 c0 test %al,%al 8146c100: 75 0e jne8146c110 8146c102: 66 41 83 4d 60 10 orw$0x10,0x60(%r13) 8146c108: 4c 89 efmov%r13,%rdi 8146c10b: e8 7d cc ff ff callq 81468d8d 8146c110: 4d 89 6c 24 58 mov%r13,0x58(%r12) 8146c115: 31 db xor%ebx,%ebx 8146c117: e9 7c f7 ff ff jmpq 8146b898 8146c11c: bb 8f ff ff ff mov$0xff8f,%ebx 8146c121: c6 45 8a 07 movb $0x7,-0x76(%rbp) 8146c125: 48 c7 45 90 00 00 00movq $0x0,-0x70(%rbp) ... addr2line -e vmlinux -i 0x8146c0b1 net/ipv4/route.c:1815 net/ipv4/route.c:1905 which seems to be this line ip_route_input_noref()->ip_route_input_slow(): ... 1813 rth->rt_is_input = 1; 1814 if (res.table) 1815 rth->rt_table_id = res.table->tb_id; 1816 ... added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 net: Add FIB table id to rtable Add the FIB table id to rtable to make the information available for IPv4 as it is for IPv6. -ss -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 2015-09-16 11:24, Sergey Senozhatsky wrote: > Hi, > > 4.3.0-rc1-next-20150916 > > oops after removal of rndis usb device > > ... > 8146c052: 00 > 8146c053: 0f b6 55 8a movzbl -0x76(%rbp),%edx > 8146c057: 49 8b bf e8 01 00 00mov0x1e8(%r15),%rdi > 8146c05e: 45 89 d1mov%r10d,%r9d > 8146c061: 44 89 f6mov%r14d,%esi > 8146c064: 44 88 95 70 ff ff ffmov%r10b,-0x90(%rbp) > 8146c06b: 0f 95 c1setne %cl > 8146c06e: 81 ce 00 00 00 80 or $0x8000,%esi > 8146c074: 41 83 e1 01 and$0x1,%r9d > 8146c078: 45 31 c0xor%r8d,%r8d > 8146c07b: e8 49 d5 ff ff callq 814695c9 > > 8146c080: 48 85 c0test %rax,%rax > 8146c083: 49 89 c5mov%rax,%r13 > 8146c086: 75 0a jne8146c092 >> 8146c088: bb 97 ff ff ff mov$0xff97,%ebx > 8146c08d: e9 06 f8 ff ff jmpq 8146b898 > > 8146c092: 48 c7 40 58 a3 95 46movq > $0x814695a3,0x58(%rax) > 8146c099: 81 > 8146c09a: c6 80 a2 00 00 00 01movb $0x1,0xa2(%rax) > 8146c0a1: 48 8b 45 98 mov-0x68(%rbp),%rax > 8146c0a5: 44 8a 95 70 ff ff ffmov-0x90(%rbp),%r10b > 8146c0ac: 48 85 c0test %rax,%rax > 8146c0af: 74 0a je 8146c0bb > > 8146c0b1: 8b 40 10mov0x10(%rax),%eax > ^^^ > 8146c0b4: 41 89 85 b0 00 00 00mov%eax,0xb0(%r13) > 8146c0bb: 65 ff 05 9e 54 ba 7eincl %gs:0x7eba549e(%rip) > # 11560 > 8146c0c2: 80 7d 8a 07 cmpb $0x7,-0x76(%rbp) > 8146c0c6: 75 1a jne8146c0e2 > > 8146c0c8: 41 81 a5 9c 00 00 00andl $0x7fff,0x9c(%r13) > 8146c0cf: ff ff ff 7f > 8146c0d3: f7 db neg%ebx > 8146c0d5: 49 c7 45 50 b1 96 46movq > $0x814696b1,0x50(%r13) > 8146c0dc: 81 > 8146c0dd: 66 41 89 5d 64 mov%bx,0x64(%r13) > 8146c0e2: 45 84 d2test %r10b,%r10b > 8146c0e5: 74 29 je 8146c110 > > 8146c0e7: 0f b6 7d 89 movzbl -0x77(%rbp),%edi > 8146c0eb: 4c 89 eemov%r13,%rsi > 8146c0ee: 48 ff c7inc%rdi > 8146c0f1: 48 6b ff 60 imul $0x60,%rdi,%rdi > 8146c0f5: 48 03 7d 90 add-0x70(%rbp),%rdi > 8146c0f9: e8 10 d1 ff ff callq 8146920e > > 8146c0fe: 84 c0 test %al,%al > 8146c100: 75 0e jne8146c110 > > 8146c102: 66 41 83 4d 60 10 orw$0x10,0x60(%r13) > 8146c108: 4c 89 efmov%r13,%rdi > 8146c10b: e8 7d cc ff ff callq 81468d8d > > 8146c110: 4d 89 6c 24 58 mov%r13,0x58(%r12) > 8146c115: 31 db xor%ebx,%ebx > 8146c117: e9 7c f7 ff ff jmpq 8146b898 > > 8146c11c: bb 8f ff ff ff mov$0xff8f,%ebx > 8146c121: c6 45 8a 07 movb $0x7,-0x76(%rbp) > 8146c125: 48 c7 45 90 00 00 00movq $0x0,-0x70(%rbp) > ... > > addr2line -e vmlinux -i 0x8146c0b1 > net/ipv4/route.c:1815 > net/ipv4/route.c:1905 > > > which seems to be this line ip_route_input_noref()->ip_route_input_slow(): > ... > 1813 rth->rt_is_input = 1; > 1814 if (res.table) > 1815 rth->rt_table_id = res.table->tb_id; > 1816 > ... > > > added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 > > net: Add FIB table id to rtable > > Add the FIB table id to rtable to make the information available for > IPv4 as it is for IPv6. > > > -ss > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html I to get an Oops in ip_route_input_noref(). It happens occasionally during bootup. KVM environment using virtio driver. Let me know if you need any additional
Re: [linux-next] oops in ip_route_input_noref
On 2015-09-16 15:07, David Ahern wrote: > On 9/16/15 5:50 AM, Richard Alpe wrote: >> On 2015-09-16 11:24, Sergey Senozhatsky wrote: >>> Hi, >>> >>> 4.3.0-rc1-next-20150916 >>> >>> oops after removal of rndis usb device > > Hi Sergey: > > Is this with KVM or baremetal? > > -8<- > thanks for the analysis > >>> addr2line -e vmlinux -i 0x8146c0b1 >>> net/ipv4/route.c:1815 >>> net/ipv4/route.c:1905 >>> >>> >>> which seems to be this line ip_route_input_noref()->ip_route_input_slow(): >>> ... >>> 1813 rth->rt_is_input = 1; >>> 1814 if (res.table) >>> 1815 rth->rt_table_id = res.table->tb_id; >>> 1816 >>> ... >>> >>> >>> added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 >>> >>> net: Add FIB table id to rtable >>> >>> Add the FIB table id to rtable to make the information available for >>> IPv4 as it is for IPv6. >>> >>> >>> -ss > > Hi Richard: > >> I to get an Oops in ip_route_input_noref(). It happens occasionally during >> bootup. >> KVM environment using virtio driver. Let me know if you need any additional >> info or >> if you want me to try to bisect it. >> >> Starting network... >> ... >> [0.877040] BUG: unable to handle kernel NULL pointer dereference at >> 0056 >> [0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 > > Can you send me your kernel config and qemu command line? KVM with virtio > networking is a primary test vehicle, and I did not encounter this at all. Sure thing. Not sure how ppl normally provide files on netdev but I'm just going to go ahead and paste them here :) $ ps aux | grep kvm qemu-system-x86_64 -enable-kvm -name tipc-medium-node1 -S -machine pc-0.14,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid cdec478a-5f0d-49f1-b25e-fac4ca0b290c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/tipc-medium-node1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=n,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,fd=25,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=00:0f:ff:10:04:01,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:28101 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on $ cat .config # # Automatically generated file; DO NOT EDIT. # Linux/x86 3.12.28 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_SUSE_KERNEL=y # CONFIG_SUSE_KERNEL_SUPPORTED is not set # CONFIG_SPLIT_PACKAGE is not set CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_FHANDLE is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_GENERIC_TIME_VSYSCALL=y
Re: [linux-next] oops in ip_route_input_noref
On 2015-09-16 15:53, Richard Alpe wrote: > On 2015-09-16 15:07, David Ahern wrote: >> On 9/16/15 5:50 AM, Richard Alpe wrote: >>> On 2015-09-16 11:24, Sergey Senozhatsky wrote: Hi, 4.3.0-rc1-next-20150916 oops after removal of rndis usb device >> >> Hi Sergey: >> >> Is this with KVM or baremetal? >> >> -8<- >> thanks for the analysis >> addr2line -e vmlinux -i 0x8146c0b1 net/ipv4/route.c:1815 net/ipv4/route.c:1905 which seems to be this line ip_route_input_noref()->ip_route_input_slow(): ... 1813 rth->rt_is_input = 1; 1814 if (res.table) 1815 rth->rt_table_id = res.table->tb_id; 1816 ... added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 net: Add FIB table id to rtable Add the FIB table id to rtable to make the information available for IPv4 as it is for IPv6. -ss >> >> Hi Richard: >> >>> I to get an Oops in ip_route_input_noref(). It happens occasionally during >>> bootup. >>> KVM environment using virtio driver. Let me know if you need any additional >>> info or >>> if you want me to try to bisect it. >>> >>> Starting network... >>> ... >>> [0.877040] BUG: unable to handle kernel NULL pointer dereference at >>> 0056 >>> [0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 >> >> Can you send me your kernel config and qemu command line? KVM with virtio >> networking is a primary test vehicle, and I did not encounter this at all. > Sure thing. Not sure how ppl normally provide files on netdev but I'm just > going > to go ahead and paste them here :) > > $ ps aux | grep kvm > qemu-system-x86_64 -enable-kvm -name tipc-medium-node1 -S -machine > pc-0.14,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp > 2,sockets=2,cores=1,threads=1 -uuid cdec478a-5f0d-49f1-b25e-fac4ca0b290c > -no-user-config -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/tipc-medium-node1.monitor,server,nowait > -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown > -boot order=n,menu=on,strict=on -device > piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,fd=25,id=hostnet0 > -device > e1000,netdev=hostnet0,id=net0,mac=00:0f:ff:10:04:01,bus=pci.0,addr=0x3 > -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 > -vnc 127.0.0.1:28101 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on Sorry about that kvm cmdline was a copy-paste error. Here's the right one using virtio. $ ps aux | grep qemu qemu-system-x86_64 -enable-kvm -name tipc-large-node16 -S -machine pc-0.14,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 5c2ffa5f-fc39-47a2-9868-9ef93bada31a -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/tipc-large-node16.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=n,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=48 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:0f:ff:10:05:16,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:29116 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on Regards Richard > > $ cat .config > # > # Automatically generated file; DO NOT EDIT. > # Linux/x86 3.12.28 Kernel Configuration > # > CONFIG_64BIT=y > CONFIG_X86_64=y > CONFIG_X86=y > CONFIG_INSTRUCTION_DECODER=y > CONFIG_OUTPUT_FORMAT="elf64-x86-64" > CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" > CONFIG_LOCKDEP_SUPPORT=y > CONFIG_STACKTRACE_SUPPORT=y > CONFIG_HAVE_LATENCYTOP_SUPPORT=y > CONFIG_MMU=y > CONFIG_NEED_DMA_MAP_STATE=y > CONFIG_NEED_SG_DMA_LENGTH=y > CONFIG_GENERIC_ISA_DMA=y > CONFIG_GENERIC_BUG=y > CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y > CONFIG_GENERIC_HWEIGHT=y > CONFIG_ARCH_MAY_HAVE_PC_FDC=y > CONFIG_RWSEM_XCHGADD_ALGORITHM=y > CONFIG_GENERIC_CALIBRATE_DELAY=y > CONFIG_ARCH_HAS_CPU_RELAX=y > CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y > CONFIG_ARCH_HAS_CPU_AUTOPROBE=y > CONFIG_HAVE_SETUP_PER_CPU_AREA=y > CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y > CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y > CONFIG_ARCH_HIBERNATION_POSSIBLE=y > CONFIG_ARCH_SUSPEND_POSSIBLE=y > CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y > CONFIG_ARCH_WANT_GENERAL_HUGETLB=y > CONFIG_ZONE_DMA32=y > CONFIG_AUDIT_ARCH=y > CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y > CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y > CONFIG_X86_64_SMP=y > CONFIG_X86_HT=y > CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi > -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 > -fcall-saved-r10 -fcall-saved-r11" > CONFIG_ARCH_CPU_PROBE_RELEASE=y >
Re: [linux-next] oops in ip_route_input_noref
On 9/16/15 5:50 AM, Richard Alpe wrote: On 2015-09-16 11:24, Sergey Senozhatsky wrote: Hi, 4.3.0-rc1-next-20150916 oops after removal of rndis usb device Hi Sergey: Is this with KVM or baremetal? -8<- thanks for the analysis addr2line -e vmlinux -i 0x8146c0b1 net/ipv4/route.c:1815 net/ipv4/route.c:1905 which seems to be this line ip_route_input_noref()->ip_route_input_slow(): ... 1813 rth->rt_is_input = 1; 1814 if (res.table) 1815 rth->rt_table_id = res.table->tb_id; 1816 ... added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 net: Add FIB table id to rtable Add the FIB table id to rtable to make the information available for IPv4 as it is for IPv6. -ss Hi Richard: I to get an Oops in ip_route_input_noref(). It happens occasionally during bootup. KVM environment using virtio driver. Let me know if you need any additional info or if you want me to try to bisect it. Starting network... ... [0.877040] BUG: unable to handle kernel NULL pointer dereference at 0056 [0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 Can you send me your kernel config and qemu command line? KVM with virtio networking is a primary test vehicle, and I did not encounter this at all. Thanks, David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 9/16/15 3:24 AM, Sergey Senozhatsky wrote: Hi, 4.3.0-rc1-next-20150916 oops after removal of rndis usb device Sergey: Can you send me the oops output? Thanks, David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 9/16/15 7:53 AM, Richard Alpe wrote: I to get an Oops in ip_route_input_noref(). It happens occasionally during bootup. KVM environment using virtio driver. Let me know if you need any additional info or if you want me to try to bisect it. Starting network... ... [0.877040] BUG: unable to handle kernel NULL pointer dereference at 0056 [0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 Can you send me your kernel config and qemu command line? KVM with virtio networking is a primary test vehicle, and I did not encounter this at all. Sure thing. Not sure how ppl normally provide files on netdev but I'm just going to go ahead and paste them here :) An attachment for the config is better than inline. $ ps aux | grep kvm qemu-system-x86_64 -enable-kvm -name tipc-medium-node1 -S -machine pc-0.14,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid cdec478a-5f0d-49f1-b25e-fac4ca0b290c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/tipc-medium-node1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=n,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,fd=25,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=00:0f:ff:10:04:01,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:28101 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on $ cat .config # # Automatically generated file; DO NOT EDIT. # Linux/x86 3.12.28 Kernel Configuration # 3.12.28? That should say this for net-next: # Linux/x86 4.2.0 Kernel Configuration Or are you reporting a problem with 3.12.28? David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 9/16/15 7:59 AM, Richard Alpe wrote: Sorry about that kvm cmdline was a copy-paste error. Here's the right one using virtio. I was just about to respond to that as well... -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-next] oops in ip_route_input_noref
On 2015-09-16 15:57, David Ahern wrote: > On 9/16/15 7:53 AM, Richard Alpe wrote: I to get an Oops in ip_route_input_noref(). It happens occasionally during bootup. KVM environment using virtio driver. Let me know if you need any additional info or if you want me to try to bisect it. Starting network... ... [0.877040] BUG: unable to handle kernel NULL pointer dereference at 0056 [0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 >>> >>> Can you send me your kernel config and qemu command line? KVM with virtio >>> networking is a primary test vehicle, and I did not encounter this at all. >> Sure thing. Not sure how ppl normally provide files on netdev but I'm just >> going >> to go ahead and paste them here :) > > An attachment for the config is better than inline. Fantastic day today, I managed to mess up two out of two copy pastes. Sorry about that.. Here is the proper kconfig as .gz :) Regards Richard > >> >> $ ps aux | grep kvm >> qemu-system-x86_64 -enable-kvm -name tipc-medium-node1 -S -machine >> pc-0.14,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp >> 2,sockets=2,cores=1,threads=1 -uuid cdec478a-5f0d-49f1-b25e-fac4ca0b290c >> -no-user-config -nodefaults -chardev >> socket,id=charmonitor,path=/var/lib/libvirt/qemu/tipc-medium-node1.monitor,server,nowait >> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown >> -boot order=n,menu=on,strict=on -device >> piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,fd=25,id=hostnet0 >> -device >> e1000,netdev=hostnet0,id=net0,mac=00:0f:ff:10:04:01,bus=pci.0,addr=0x3 >> -chardev pty,id=charserial0 -device >> isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:28101 -device >> cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device >> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on >> >> $ cat .config >> # >> # Automatically generated file; DO NOT EDIT. >> # Linux/x86 3.12.28 Kernel Configuration >> # > > 3.12.28? That should say this for net-next: > > # Linux/x86 4.2.0 Kernel Configuration > > Or are you reporting a problem with 3.12.28? > > David config.gz Description: application/gzip
Re: [linux-next] oops in ip_route_input_noref
On Wed, Sep 16, 2015 at 6:24 AM, Sergey Senozhatskywrote: > added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 > > net: Add FIB table id to rtable > > Add the FIB table id to rtable to make the information available for > IPv4 as it is for IPv6. I see the same issue here when booting a mx25 ARM processor via NFS. defconfig is arch/arm/configs/imx_v4_v5_defconfig. It happens in 100% of the boots and the log is: fec 50038000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx Sending DHCP requests . Unable to handle kernel NULL pointer dereference at virtual address 0007 pgd = c0004000 [0007] *pgd= Internal error: Oops: 1 [#1] PREEMPT ARM Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 4.3.0-rc1-next-20150916-dirty #96 Hardware name: Freescale i.MX25 (Device Tree Support) task: c06ac1d0 ti: c06a8000 task.ti: c06a8000 PC is at ip_route_input_noref+0x3d8/0x808 LR is at __local_bh_enable_ip+0x5c/0xdc pc : []lr : []psr: a013 sp : c06a9cb0 ip : 000a fp : r10: c39b7000 r9 : c39c8d00 r8 : 1e00a8c0 r7 : c39c04a0 r6 : r5 : c3969a00 r4 : ff8f r3 : r2 : 0001 r1 : c0438410 r0 : c3969a00 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 0005317f Table: 80004000 DAC: 0053 Process swapper (pid: 0, stack limit = 0xc06a8190) Stack: (0xc06a9cb0 to 0xc06aa000) 9ca0: 0044 c06ab93c 9cc0: 0100a8c0 c06f0540 c3a8f74e 0002 00070044 c043bba8 9ce0: c06a9d24 0002 1e00 0100a8c0 9d00: 0100a8c0 1e00a8c0 c3a8f720 0001 c3a8f74e 9d20: c39c04a0 c39c04a0 002e c3a8f720 0001 c06fa580 c043bbbc 9d40: c39b7000 c06a9d60 c3a8f720 c39b7000 c39c04a0 c06f0540 002e c043c3a0 9d60: c3a8f896 c06929f4 c39b7000 c30d3ce0 c06a9d78 0100a8c0 c0401190 c06ab9d8 9d80: 0008 c39b7048 0008 c06ab9d8 c39b7000 c39b705c c39c04a0 c040dfa0 9da0: c39c04a0 c3a8f74e 002e c39b753c c39c04a0 c39c04a0 c06ab9c0 c39b705c 9dc0: c39b7520 0008 c39c04a0 c04117c0 9de0: 08e0 c39c04a0 c39c04a0 c39b7520 0001 9e00: c39b7000 c0411400 0003 c04120cc c485d000 0800 9e20: c39c04a0 c02fde40 c06ac1d0 c06b1c38 0040 c39b7030 c39b7040 9e40: c3943000 0002 c30d39e0 9e60: c39b74b8 0040 c39b7460 c39b7520 c06b3ce0 c383de14 e1e6cf80 c39b7520 9e80: 0001 0040 012c c06a9ea8 8c4d c06b4500 c06fa580 c0411bdc 9ea0: c06a9eb0 8c4d c06a9ea8 c06a9ea8 c06a9eb0 c06a9eb0 0001 9ec0: 0008 0003 c06fd76c c06fa8d0 0101 0004 000c c001bc24 9ee0: c39d2080 0001 000a 8c4c 0020 9f00: c06cf3a4 0001 c06a9f58 41069264 c3802000 c001c148 9f20: c004c958 c06a9f58 c06fd284 c06a9f58 c06a9f8c c06fa69d 9f40: c06b3034 c0009404 c000ac20 6013 c04b5c64 0005317f 9f60: 0005217f 6013 c06aa0f4 c06fae98 c06fa69d c06fae98 c06fa69d 41069264 9f80: c06b3034 60d3 c06a9fa8 c000ac30 c000ac20 6013 9fa0: 0053 c06fae98 c0041724 c06ac1d0 c065ebc4 9fc0: c065e670 c06978bc c06fd174 9fe0: c06aa094 c06978b8 c06ad120 80004000 80695fb8 80008048 [] (ip_route_input_noref) from [] (ip_rcv_finish+0xe8/0x31c) [] (ip_rcv_finish) from [] (ip_rcv+0x2b4/0x3d4) [] (ip_rcv) from [] (__netif_receive_skb_core+0x304/0x944) [] (__netif_receive_skb_core) from [] (netif_receive_skb_internal+0x28/0x78) [] (netif_receive_skb_internal) from [] (napi_gro_receive+0x88/0x130) [] (napi_gro_receive) from [] (fec_enet_rx_napi+0x404/0xa78) [] (fec_enet_rx_napi) from [] (net_rx_action+0xf8/0x334) [] (net_rx_action) from [] (__do_softirq+0x11c/0x3a0) [] (__do_softirq) from [] (irq_exit+0xac/0xf8) [] (irq_exit) from [] (__handle_domain_irq+0x64/0xd0) [] (__handle_domain_irq) from [] (avic_handle_irq+0x34/0x54) [] (avic_handle_irq) from [] (__irq_svc+0x44/0x78) Exception stack(0xc06a9f58 to 0xc06a9fa0) 9f40: 0005317f 9f60: 0005217f 6013 c06aa0f4 c06fae98 c06fa69d c06fae98 c06fa69d 41069264 9f80: c06b3034 60d3 c06a9fa8 c000ac30 c000ac20 6013 [] (__irq_svc) from [] (arch_cpu_idle+0x28/0x44) [] (arch_cpu_idle) from [] (cpu_startup_entry+0x118/0x2bc) [] (cpu_startup_entry) from [] (start_kernel+0x308/0x368) [] (start_kernel) from [<80008048>] (0x80008048) Code: e3a02001 e353 e585102c e5c5205e (15933008) ---[ end trace 443993f61e8bf0a0 ]--- Kernel panic - not syncing: Fatal exception in interrupt ---[ end Kernel panic - not syncing: Fatal exception in interrupt -- To unsubscribe from this list: send the
Re: [linux-next] oops in ip_route_input_noref
On 9/16/15 9:00 AM, Fabio Estevam wrote: On Wed, Sep 16, 2015 at 6:24 AM, Sergey Senozhatskywrote: added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 net: Add FIB table id to rtable Add the FIB table id to rtable to make the information available for IPv4 as it is for IPv6. I see the same issue here when booting a mx25 ARM processor via NFS. defconfig is arch/arm/configs/imx_v4_v5_defconfig. I am still not able to reproduce. While I work on a full Cumulus image for other test cases here's a patch to try; eagle eye Nikolay noted a potential use without init in the maze of goto's. Thanks, David diff --git a/net/ipv4/route.c b/net/ipv4/route.c index da427a4a33fe..80f7c5b7b832 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1712,6 +1712,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, goto martian_source; res.fi = NULL; + res.table = NULL; if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0)) goto brd_input; @@ -1834,6 +1835,7 @@ out: return err; RT_CACHE_STAT_INC(in_no_route); res.type = RTN_UNREACHABLE; res.fi = NULL; + res.table = NULL; goto local_input; /*
Re: [linux-next] oops in ip_route_input_noref
On (09/16/15 07:07), David Ahern wrote: > Hi Sergey: > Hi, sorry for long reply. Baremetal. So grabbing the backtrace is a bit complicated. But it looks very close to what Richard Alpe has posted. in IRQ RIP is at ip_route_input_noref [0.877597] [] arp_process+0x39c/0x690 [0.877597] [] arp_rcv+0x13e/0x170 -ss > Is this with KVM or baremetal? > > -8<- > thanks for the analysis > > >>addr2line -e vmlinux -i 0x8146c0b1 > >>net/ipv4/route.c:1815 > >>net/ipv4/route.c:1905 > >> > >> > >>which seems to be this line ip_route_input_noref()->ip_route_input_slow(): > >>... > >>1813 rth->rt_is_input = 1; > >>1814 if (res.table) > >>1815 rth->rt_table_id = res.table->tb_id; > >>1816 > >>... > >> > >> > >>added by b7503e0cdb5dbec5d201aa69dc14679b5ae8 > >> > >> net: Add FIB table id to rtable > >> > >> Add the FIB table id to rtable to make the information available for > >> IPv4 as it is for IPv6. > >> > >> > >>-ss > > Hi Richard: > > >I to get an Oops in ip_route_input_noref(). It happens occasionally during > >bootup. > >KVM environment using virtio driver. Let me know if you need any additional > >info or > >if you want me to try to bisect it. > > > >Starting network... > >... > >[0.877040] BUG: unable to handle kernel NULL pointer dereference at > >0056 > >[0.877597] IP: [] ip_route_input_noref+0x1a2/0xb00 > > Can you send me your kernel config and qemu command line? KVM with virtio > networking is a primary test vehicle, and I did not encounter this at all. > > Thanks, > David > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html