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.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to