Hi, When booting 4.11-rc7 on a qemu guest with a single numa node, I hit the following[1] crash on boot. If I configure more than one node, the problem goes away. I tracked the relevant line down to:
(gdb) l *(irq_create_affinity_masks+0x237) 0xffffffff81103a87 is in irq_create_affinity_masks (/raid/home/djwong/cdev/work/linux-xfs/kernel/irq/affinity.c:111). 106 /* Calculate the number of cpus per vector */ 107 ncpus = cpumask_weight(nmsk); 108 vecs_to_assign = min(vecs_per_node, ncpus); 109 110 /* Account for rounding errors */ 111 extra_vecs = ncpus - vecs_to_assign * (ncpus / vecs_to_assign); 112 113 for (v = 0; curvec < last_affv && v < vecs_to_assign; 114 curvec++, v++) { 115 cpus_per_vec = ncpus / vecs_to_assign; Not sure exactly what's going on here; I can look into it more tomorrow at work but maybe this rings a bell already? The line in question was last changed by commit 3412386b53 ("irq/affinity: Fix extra vecs calculation"). :) Thanks, --Darrick [1] relevant dmesg: [ 0.823932] divide error: 0000 [#1] PREEMPT SMP [ 0.824818] Modules linked in: [ 0.825469] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.11.0-rc7-xfsx #1 [ 0.826673] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 [ 0.828137] task: ffff880078ff4f80 task.stack: ffffc9000031c000 [ 0.829096] RIP: 0010:irq_create_affinity_masks+0x237/0x360 [ 0.830004] RSP: 0000:ffffc9000031faa0 EFLAGS: 00010297 [ 0.830849] RAX: 0000000000000004 RBX: 0000000000000000 RCX: 0000000000000004 [ 0.831988] RDX: 0000000000000000 RSI: 0000000000000040 RDI: 000000000000000f [ 0.833137] RBP: ffffc9000031fb10 R08: 0000000000000000 R09: 0000000000000001 [ 0.834296] R10: 0000000000000000 R11: 0000000000000001 R12: ffffc9000031fcb8 [ 0.835453] R13: 0000000000000004 R14: 000000000000a018 R15: 0000000000000002 [ 0.836589] FS: 0000000000000000(0000) GS:ffff88007f600000(0000) knlGS:0000000000000000 [ 0.837948] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.838881] CR2: 00000000ffffffff CR3: 0000000001c11000 CR4: 00000000000006e0 [ 0.840029] Call Trace: [ 0.840454] __pci_enable_msix+0x316/0x4c0 [ 0.841133] pci_alloc_irq_vectors_affinity+0xd6/0x170 [ 0.842020] vp_find_vqs_msix+0xee/0x470 [ 0.842739] vp_find_vqs+0x36/0x180 [ 0.843490] ? __kmalloc+0x27c/0x2e0 [ 0.844095] virtscsi_init+0xfd/0x280 [ 0.844718] ? vp_get+0x59/0x80 [ 0.845266] virtscsi_probe+0xeb/0x2f0 [ 0.845886] virtio_dev_probe+0x19d/0x200 [ 0.846547] driver_probe_device+0x204/0x2e0 [ 0.847272] __driver_attach+0x9f/0xb0 [ 0.847878] ? driver_probe_device+0x2e0/0x2e0 [ 0.848750] bus_for_each_dev+0x66/0xa0 [ 0.849419] driver_attach+0x1e/0x20 [ 0.850078] bus_add_driver+0x1b4/0x230 [ 0.850709] ? scsi_init_procfs+0x5b/0x5b [ 0.851409] driver_register+0x60/0xe0 [ 0.852036] ? scsi_init_procfs+0x5b/0x5b [ 0.852707] register_virtio_driver+0x20/0x30 [ 0.853456] init+0x85/0xcc [ 0.853930] do_one_initcall+0x53/0x1b0 [ 0.854585] ? parse_args+0x26a/0x3f0 [ 0.855238] kernel_init_freeable+0x1d9/0x25c [ 0.855947] ? rest_init+0x140/0x140 [ 0.856553] kernel_init+0xe/0x100 [ 0.857125] ret_from_fork+0x31/0x40 [ 0.857710] Code: c5 80 2a 09 82 48 89 cf 48 89 4d d0 f3 48 0f b8 c7 48 89 c1 8b 45 a0 44 29 f8 99 f7 7d a8 39 c8 0f 4f c1 89 c3 89 45 bc 89 c8 99 <f7> fb 44 39 7d c4 89 55 b8 89 45 ac 0f 8e b4 00 00 00 85 db 0f [ 0.861065] RIP: irq_create_affinity_masks+0x237/0x360 RSP: ffffc9000031faa0 [ 0.862531] ---[ end trace e472b3c89b58d381 ]--- [ 0.863311] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b [ 0.863311] [ 0.864840] Kernel Offset: disabled [ 0.865433] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b [ 0.865433]