Date: Fri, 22 Dec 2017 13:22:20 -0500 From: Stephen Hurd <shurd@FreeBSD.org> To: Oleg Bulyzhin <oleg@FreeBSD.org>, Stephen Hurd <shurd@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Sean Bruno <sbruno@freebsd.org>, erj@freebsd.org Subject: Re: svn commit: r327013 - head/sys/net Message-ID: <16beab6b-3252-1f84-33f4-f9fc49f158a2@FreeBSD.org> In-Reply-To: <20171222115825.GA69149@lath.RINET.ru> References: <201712200103.vBK13YgS025896@repo.freebsd.org> <20171222115825.GA69149@lath.RINET.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Oleg Bulyzhin wrote: > On Wed, Dec 20, 2017 at 01:03:34AM +0000, Stephen Hurd wrote: >> Author: shurd >> Date: Wed Dec 20 01:03:34 2017 >> New Revision: 327013 >> URL: https://svnweb.freebsd.org/changeset/base/327013 >> >> Log: >> Support attaching tx queues to cpus >> >> This will attempt to use a different thread/core on the same L2 >> cache when possible, or use the same cpu as the rx thread when not. >> If SMP isn't enabled, don't go looking for cores to use. This is mostly >> useful when using shared TX/RX queues. >> >> Reviewed by: sbruno >> Sponsored by: Limelight Networks >> Differential Revision: https://reviews.freebsd.org/D12446 > i'm getting this panic: > > [skipped] > ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver> port 0xcc00-0xcc1f mem 0xfde80000-0xfdefffff,0xfde7c000-0xfde7ffff irq 18 at device 0.0 on pci2 > ix0: using 2048 tx descriptors and 2048 rx descriptors > ix0: msix_init qsets capped at 16 > ix0: pxm cpus: 4 queue msgs: 63 admincnt: 1 > ix0: using 4 rx queues 4 tx queues > ix0: attempting to allocate 5 MSI-X vectors (64 supported) > msi: routing MSI-X IRQ 259 to local APIC 0 vector 54 > msi: routing MSI-X IRQ 260 to local APIC 0 vector 55 > msi: routing MSI-X IRQ 261 to local APIC 0 vector 56 > msi: routing MSI-X IRQ 262 to local APIC 0 vector 57 > msi: routing MSI-X IRQ 263 to local APIC 0 vector 58 > ix0: using IRQs 259-263 for MSI-X > ix0: Using MSIX interrupts with 5 vectors > ix0: allocated for 4 queues > ix0: allocated for 4 rx queues > panic: Assertion gtask->gt_taskqueue != NULL failed at /usr/src/sys/net/iflib.c:5177 > cpuid = 0 > time = 1 > KDB: enter: panic > [ thread pid 0 tid 100000 ] > Stopped at kdb_enter+0x3b: movq $0,kdb_why > db> bt > Tracing pid 0 tid 100000 td 0xffffffff80bf63c0 > kdb_enter() at kdb_enter+0x3b/frame 0xffffffff81004130 > vpanic() at vpanic+0x1b9/frame 0xffffffff810041b0 > kassert_panic() at kassert_panic+0x173/frame 0xffffffff81004220 > iflib_irq_set_affinity() at iflib_irq_set_affinity+0xae2/frame 0xffffffff810042e0 > iflib_irq_alloc_generic() at iflib_irq_alloc_generic+0x1f7/frame 0xffffffff81004350 > ixgbe_if_msix_intr_assign() at ixgbe_if_msix_intr_assign+0xa2/frame 0xffffffff810043d0 > iflib_device_register() at iflib_device_register+0x2a6a/frame 0xffffffff810046f0 > iflib_device_attach() at iflib_device_attach+0xb7/frame 0xffffffff81004720 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004770 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff81004790 > pci_attach() at pci_attach+0xd5/frame 0xffffffff810047d0 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004820 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff81004840 > acpi_pcib_pci_attach() at acpi_pcib_pci_attach+0xa1/frame 0xffffffff81004880 > device_attach() at device_attach+0x3f7/frame 0xffffffff810048d0 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff810048f0 > pci_attach() at pci_attach+0xd5/frame 0xffffffff81004930 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004980 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff810049a0 > acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x3bc/frame 0xffffffff81004a10 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004a60 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff81004a80 > acpi_attach() at acpi_attach+0xe85/frame 0xffffffff81004b30 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004b80 > bus_generic_attach() at bus_generic_attach+0x5a/frame 0xffffffff81004ba0 > nexus_acpi_attach() at nexus_acpi_attach+0x73/frame 0xffffffff81004bd0 > device_attach() at device_attach+0x3f7/frame 0xffffffff81004c20 > bus_generic_new_pass() at bus_generic_new_pass+0x116/frame 0xffffffff81004c50 > bus_set_pass() at bus_set_pass+0x8c/frame 0xffffffff81004c80 > configure() at configure+0x9/frame 0xffffffff81004c90 > mi_startup() at mi_startup+0x9c/frame 0xffffffff81004cb0 > btext() at btext+0x2c Can you provide me with the output of ``sysctl kern.sched.topology_spec''? It would also be useful to add a line in iflib.c at the beginning of iflib_irq_set_affinity() to show the parameters: int cpuid; int err, tid; +device_printf(ctx->ifc_dev, "irq=%d, type=%d, qid=%d, name=%s\n", irq, type, qid, name); cpuid = find_nth(ctx, qid); tid = get_thread_num(ctx, type, qid); MPASS(tid >= 0); And provide the new dmesg with this added output.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16beab6b-3252-1f84-33f4-f9fc49f158a2>