Bug #12262
Suboptimal vmem hash table slows down boot
Start date:
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
We noticed on some machines booting custom install image over PXE very long delay (about 30 minutes) in the middle of the boot. The delay is caused by extremely slow i40e_m_stop()
with this stack:
[0]> ::stack kmdb_enter+0xb() debug_enter+0x5d(fffffffff7944132) apix`apic_nmi_intr+0x95(0, fffffffffbc73770) av_dispatch_nmivect+0x34(fffffffffbc73770) nmiint+0x152() vmem_hash_delete+0x6d(fffffffffbccd2e0, ffffc1338dfe8000, 1000) vmem_xfree+0x4b(fffffffffbccd2e0, ffffc1338dfe8000, 1000) vmem_free+0x23(fffffffffbccd2e0, ffffc1338dfe8000, 1000) contig_free+0xdc(ffffc1338dfe8000, 800) kfreea+0x65(ffffc1338dfe8000) i_ddi_mem_free+0x35(ffffc1338dfe8000, ffffc1338dd75c80) ddi_dma_mem_free+0x27(ffffc1338d7d2368) i40e`i40e_free_dma_buffer+0x48(ffffc1338d7d2358) i40e`i40e_free_tx_dma+0x4d(ffffc1338c263000) i40e`i40e_free_ring_mem+0x67(ffffc1338be5f000, 0) i40e`i40e_stop+0x207(ffffc1338be5f000, 1) i40e`i40e_m_stop+0x3b(ffffc1338be5f000) mac`mac_stop+0x6c(ffffc1338c317810) dls`dls_close+0xe4(ffffc1338c6c8e48) dld`dld_str_detach+0x5f(ffffc1338c6c8e48) dld`dld_str_close+0x6a(ffffc1338c20fa48) dld`dld_close+0x20(ffffc1338c20fa48) qdetach+0x9b(ffffc1338c20fa48, 1, 40000003, ffffc13382359db0, 0) strclose+0x2c1(ffffc1338c210b80, 40000003, ffffc13382359db0) specfs`device_close+0xb9(ffffc1338c210c80, 40000003, ffffc13382359db0) specfs`spec_close+0x17b(ffffc1338c210c80, 40000003, 1, 0, ffffc13382359db0, 0) fop_close+0x61(ffffc1338c210c80, 40000003, 1, 0, ffffc13382359db0, 0) ldi_close+0x93(ffffc1338bd92aa8, 3, ffffc13382359db0) strplumb`getmacaddr+0x174(ffffc13380a327f8, fffffffffbc73fb0) strplumb`matchmac+0xa4(ffffc13380a327f8, fffffffffbc74338) walk_devs+0x56(ffffc13380a327f8, fffffffff7a11d70, fffffffffbc74338, 1) walk_devs+0xc6(ffffc13380a32aa0, fffffffff7a11d70, fffffffffbc74338, 1) walk_devs+0xc6(ffffc13380a32d48, fffffffff7a11d70, fffffffffbc74338, 1) walk_devs+0xc6(ffffc133809fb550, fffffffff7a11d70, fffffffffbc74338, 1) walk_devs+0xc6(ffffc13382341d58, fffffffff7a11d70, fffffffffbc74338, 1) walk_devs+0xc6(ffffc133721fad50, fffffffff7a11d70, fffffffffbc74338, 1) ddi_walk_devs+0x1e(ffffc133721fad50, fffffffff7a11d70, fffffffffbc74338) strplumb`strplumb_get_netdev_path+0x89() strplumb`resolve_boot_path+0xcd() strplumb`strplumb+0x31() stubs_common_code+0x51() main+0x47b() _locore_start+0x90() [0]>
Once we installed our custom illumos build from that slowly booting install image all subsequent boots were fast as usual.
Related issues