Index | Thread | Search

From:
Visa Hankala <visa@hankala.org>
Subject:
Re: witness curproc NULL dereference
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Wed, 25 Sep 2024 16:07:50 +0000

Download raw body.

Thread
On Tue, Sep 24, 2024 at 07:58:44PM +0200, Alexander Bluhm wrote:
> Hi,
> 
> I have a machine where witness kernel immediately crashes at end
> of kernel boot.  Same kernel works well elsewhere.
> 
> root on sd0a (019a7cb43da5f7eb.a) swap on sd0b dump on sd0b
> kernel: page fault trap, code=0
> Stopped at      witness_checkorder+0x15f:       movq    0x1d8(%rcx),%r12
> ddb{7}> trace
> witness_checkorder(ffffffff827ea738,9,0) at witness_checkorder+0x15f
> __mp_lock(ffffffff827ea530) at __mp_lock+0x60
> intr_handler(ffff80005a626ea0,ffff80000052f980) at intr_handler+0x67
> Xintr_ioapic_edge9_untramp() at Xintr_ioapic_edge9_untramp+0x18f
> Xspllower() at Xspllower+0x1d
> cpu_hatch(ffff80005a61fff0) at cpu_hatch+0x2d1
> cpu_spinup_finish() at cpu_spinup_finish+0x8f
> end trace frame: 0x0, count: -7
> 
> CPU 7 immediately gets an interrupt before a process is scheduled.
> So curproc is NULL and p->p_sleeplocks crashes in witness.
> 
> Diff below adds some NULL checks and I get a running witness kernel.
> 
> ok?

intr_handler() wants to take the kernel lock. Witness handles this lock
as a sleepable lock to reduce ordering trouble with rwlocks.

OK visa@

> I have appended dmesg in case someone wants to figure out why there
> is an early interrupt.  But witness curproc shoud be fixed regardless.
> 
> bluhm
> 
> 
> Index: kern/subr_witness.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/kern/subr_witness.c,v
> diff -u -p -r1.53 subr_witness.c
> --- kern/subr_witness.c	3 Jun 2024 14:34:19 -0000	1.53
> +++ kern/subr_witness.c	24 Sep 2024 17:16:33 -0000
> @@ -766,7 +766,6 @@ witness_checkorder(struct lock_object *l
>  	struct lock_list_entry *lock_list, *lle;
>  	struct lock_instance *lock1, *lock2, *plock;
>  	struct lock_class *class, *iclass;
> -	struct proc *p;
>  	struct witness *w, *w1;
>  	int i, j, s;
>  
> @@ -792,9 +791,9 @@ witness_checkorder(struct lock_object *l
>  		w = lock->lo_witness =
>  		    enroll(lock->lo_type, lock->lo_name, class);
>  
> -	p = curproc;
> -
>  	if (class->lc_flags & LC_SLEEPLOCK) {
> +		struct proc *p;
> +
>  		/*
>  		 * Since spin locks include a critical section, this check
>  		 * implicitly enforces a lock order of all sleep locks before
> @@ -811,6 +810,9 @@ witness_checkorder(struct lock_object *l
>  		 * If this is the first lock acquired then just return as
>  		 * no order checking is needed.
>  		 */
> +		p = curproc;
> +		if (p == NULL)
> +			return;
>  		lock_list = p->p_sleeplocks;
>  		if (lock_list == NULL || lock_list->ll_count == 0)
>  			return;
> @@ -1097,7 +1099,6 @@ witness_lock(struct lock_object *lock, i
>  {
>  	struct lock_list_entry **lock_list, *lle;
>  	struct lock_instance *instance;
> -	struct proc *p;
>  	struct witness *w;
>  	int s;
>  
> @@ -1110,12 +1111,15 @@ witness_lock(struct lock_object *lock, i
>  		w = lock->lo_witness =
>  		    enroll(lock->lo_type, lock->lo_name, LOCK_CLASS(lock));
>  
> -	p = curproc;
> -
>  	/* Determine lock list for this lock. */
> -	if (LOCK_CLASS(lock)->lc_flags & LC_SLEEPLOCK)
> +	if (LOCK_CLASS(lock)->lc_flags & LC_SLEEPLOCK) {
> +		struct proc *p;
> +
> +		p = curproc;
> +		if (p == NULL)
> +			return;
>  		lock_list = &p->p_sleeplocks;
> -	else
> +	} else
>  		lock_list = &witness_cpu[cpu_number()].wc_spinlocks;
>  
>  	s = splhigh();
> @@ -1243,20 +1247,23 @@ witness_unlock(struct lock_object *lock,
>  	struct lock_list_entry **lock_list, *lle;
>  	struct lock_instance *instance;
>  	struct lock_class *class;
> -	struct proc *p;
>  	int i, j;
>  	int s;
>  
>  	if (witness_cold || lock->lo_witness == NULL ||
>  	    panicstr != NULL || db_active)
>  		return;
> -	p = curproc;
>  	class = LOCK_CLASS(lock);
>  
>  	/* Find lock instance associated with this lock. */
> -	if (class->lc_flags & LC_SLEEPLOCK)
> +	if (class->lc_flags & LC_SLEEPLOCK) {
> +		struct proc *p;
> +
> +		p = curproc;
> +		if (p == NULL)
> +			return;
>  		lock_list = &p->p_sleeplocks;
> -	else
> +	} else
>  		lock_list = &witness_cpu[cpu_number()].wc_spinlocks;
>  
>  	s = splhigh();
> 
> 
> OpenBSD 7.6 (GENERIC.MP) #326: Sun Sep 22 21:31:42 MDT 2024
>     deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 128822476800 (122854MB)
> avail mem = 124894371840 (119108MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xbf6c8000 (94 entries)
> bios0: vendor FUJITSU // Phoenix Technologies Ltd. version "6.00 Rev. 1.09.2619.N1" date 12/13/2010
> bios0: FUJITSU PRIMERGY RX300 S6
> acpi0 at bios0: ACPI 3.0
> acpi0: sleep states S0 S1 S4 S5
> acpi0: tables DSDT FACP TCPA SLIT SRAT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT EINJ HEST BERT SSDT ERST SPCR DMAR MCFG HPET APIC BOOT
> acpi0: wakeup devices PE0_(S4) PE1_(S4) PE3_(S4) PE5_(S4) PE7_(S4) PE8_(S4) PE9_(S4) PE10(S4) PE1A(S4) PE1E(S4) USB1(S1) USB2(S1) USB3(S1) USB4(S1) USB5(S1) USB6(S1) [...]
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-17
> acpihpet0 at acpi0: 14318179 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.10 MHz, 06-2c-02, patch 0000001f
> cpu0: cpuid 1 edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> ecx=29ee3ff<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,POPCNT,AES>
> cpu0: cpuid 6 eax=7<SENSOR,ARAT> ecx=9<EFFFREQ>
> cpu0: cpuid 7.0 edx=9c000000<IBRS,IBPB,STIBP,L1DF,SSBD>
> cpu0: cpuid a vers=3, gp=4, gpwidth=48, ff=3, ffwidth=48
> cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG> ecx=1<LAHF>
> cpu0: cpuid 80000007 edx=100<ITSC>
> cpu0: MELTDOWN
> cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 4-way I-cache, 256KB 64b/line 8-way L2 cache, 12MB 64b/line 16-way L3 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 133MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.1, IBE
> cpu1 at mainbus0: apid 16 (application processor)
> cpu1: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.14 MHz, 06-2c-02, patch 0000001f
> cpu1: smt 0, core 8, package 0
> cpu2 at mainbus0: apid 18 (application processor)
> cpu2: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.20 MHz, 06-2c-02, patch 0000001f
> cpu2: smt 0, core 9, package 0
> cpu3 at mainbus0: apid 20 (application processor)
> cpu3: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.21 MHz, 06-2c-02, patch 0000001f
> cpu3: smt 0, core 10, package 0
> cpu4 at mainbus0: apid 32 (application processor)
> cpu4: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.13 MHz, 06-2c-02, patch 0000001f
> cpu4: smt 0, core 0, package 1
> cpu5 at mainbus0: apid 34 (application processor)
> cpu5: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.15 MHz, 06-2c-02, patch 0000001f
> cpu5: smt 0, core 1, package 1
> cpu6 at mainbus0: apid 50 (application processor)
> cpu6: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.21 MHz, 06-2c-02, patch 0000001f
> cpu6: smt 0, core 9, package 1
> cpu7 at mainbus0: apid 52 (application processor)
> cpu7: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2400.20 MHz, 06-2c-02, patch 0000001f
> cpu7: smt 0, core 10, package 1
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
> ioapic1 at mainbus0: apid 2 pa 0xfec80000, version 20, 24 pins
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 1 (PE1_)
> acpiprt2 at acpi0: bus 2 (PE3_)
> acpiprt3 at acpi0: bus 3 (PE5_)
> acpiprt4 at acpi0: bus 4 (PE7_)
> acpiprt5 at acpi0: bus 5 (PE8_)
> acpiprt6 at acpi0: bus 6 (PE9_)
> acpiprt7 at acpi0: bus 7 (PE10)
> acpiprt8 at acpi0: bus 15 (PE1A)
> acpiprt9 at acpi0: bus 16 (PE1E)
> acpibtn0 at acpi0: PWRB
> acpipci0 at acpi0 CPU0
> acpipci1 at acpi0 CPU1
> acpipci2 at acpi0 PCI0
> acpicmos0 at acpi0
> "PNP0A05" at acpi0 not configured
> com0 at acpi0 COM1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo
> com0: console
> com1 at acpi0 COM2 addr 0x2f8/0x8 irq 3: ns16550a, 16 byte fifo
> "IPI0001" at acpi0 not configured
> "PNP0A05" at acpi0 not configured
> acpiac0 at acpi0: AC unit online
> "ACPI000D" at acpi0 not configured
> acpicpu0 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu1 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu2 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu3 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu4 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu5 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu6 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> acpicpu7 at acpi0: C3(350@128 io@0x1015), C2(500@96 io@0x1014), C1(1000@32 halt), PSS
> ipmi at mainbus0 not configured
> cpu0: using IvyBridge MDS workaround
> cpu0: Enhanced SpeedStep 2400 MHz: speeds: 2395, 2394, 2261, 2128, 1995, 1862, 1729, 1596 MHz
> pci0 at mainbus0 bus 255
> pchb0 at pci0 dev 0 function 0 vendor "Intel", unknown product 0x2c70 rev 0x02
> pchb1 at pci0 dev 0 function 1 vendor "Intel", unknown product 0x2d81 rev 0x02
> pchb2 at pci0 dev 2 function 0 vendor "Intel", unknown product 0x2d90 rev 0x02
> pchb3 at pci0 dev 2 function 1 vendor "Intel", unknown product 0x2d91 rev 0x02
> pchb4 at pci0 dev 2 function 2 vendor "Intel", unknown product 0x2d92 rev 0x02
> pchb5 at pci0 dev 2 function 3 vendor "Intel", unknown product 0x2d93 rev 0x02
> pchb6 at pci0 dev 2 function 4 vendor "Intel", unknown product 0x2d94 rev 0x02
> pchb7 at pci0 dev 2 function 5 vendor "Intel", unknown product 0x2d95 rev 0x02
> pchb8 at pci0 dev 3 function 0 vendor "Intel", unknown product 0x2d98 rev 0x02
> pchb9 at pci0 dev 3 function 1 vendor "Intel", unknown product 0x2d99 rev 0x02
> pchb10 at pci0 dev 3 function 2 vendor "Intel", unknown product 0x2d9a rev 0x02
> pchb11 at pci0 dev 3 function 4 vendor "Intel", unknown product 0x2d9c rev 0x02
> pchb12 at pci0 dev 4 function 0 vendor "Intel", unknown product 0x2da0 rev 0x02
> pchb13 at pci0 dev 4 function 1 vendor "Intel", unknown product 0x2da1 rev 0x02
> pchb14 at pci0 dev 4 function 2 vendor "Intel", unknown product 0x2da2 rev 0x02
> pchb15 at pci0 dev 4 function 3 vendor "Intel", unknown product 0x2da3 rev 0x02
> pchb16 at pci0 dev 5 function 0 vendor "Intel", unknown product 0x2da8 rev 0x02
> pchb17 at pci0 dev 5 function 1 vendor "Intel", unknown product 0x2da9 rev 0x02
> pchb18 at pci0 dev 5 function 2 vendor "Intel", unknown product 0x2daa rev 0x02
> pchb19 at pci0 dev 5 function 3 vendor "Intel", unknown product 0x2dab rev 0x02
> pchb20 at pci0 dev 6 function 0 vendor "Intel", unknown product 0x2db0 rev 0x02
> pchb21 at pci0 dev 6 function 1 vendor "Intel", unknown product 0x2db1 rev 0x02
> pchb22 at pci0 dev 6 function 2 vendor "Intel", unknown product 0x2db2 rev 0x02
> pchb23 at pci0 dev 6 function 3 vendor "Intel", unknown product 0x2db3 rev 0x02
> pci1 at mainbus0 bus 254
> pchb24 at pci1 dev 0 function 0 vendor "Intel", unknown product 0x2c70 rev 0x02
> pchb25 at pci1 dev 0 function 1 vendor "Intel", unknown product 0x2d81 rev 0x02
> pchb26 at pci1 dev 2 function 0 vendor "Intel", unknown product 0x2d90 rev 0x02
> pchb27 at pci1 dev 2 function 1 vendor "Intel", unknown product 0x2d91 rev 0x02
> pchb28 at pci1 dev 2 function 2 vendor "Intel", unknown product 0x2d92 rev 0x02
> pchb29 at pci1 dev 2 function 3 vendor "Intel", unknown product 0x2d93 rev 0x02
> pchb30 at pci1 dev 2 function 4 vendor "Intel", unknown product 0x2d94 rev 0x02
> pchb31 at pci1 dev 2 function 5 vendor "Intel", unknown product 0x2d95 rev 0x02
> pchb32 at pci1 dev 3 function 0 vendor "Intel", unknown product 0x2d98 rev 0x02
> pchb33 at pci1 dev 3 function 1 vendor "Intel", unknown product 0x2d99 rev 0x02
> pchb34 at pci1 dev 3 function 2 vendor "Intel", unknown product 0x2d9a rev 0x02
> pchb35 at pci1 dev 3 function 4 vendor "Intel", unknown product 0x2d9c rev 0x02
> pchb36 at pci1 dev 4 function 0 vendor "Intel", unknown product 0x2da0 rev 0x02
> pchb37 at pci1 dev 4 function 1 vendor "Intel", unknown product 0x2da1 rev 0x02
> pchb38 at pci1 dev 4 function 2 vendor "Intel", unknown product 0x2da2 rev 0x02
> pchb39 at pci1 dev 4 function 3 vendor "Intel", unknown product 0x2da3 rev 0x02
> pchb40 at pci1 dev 5 function 0 vendor "Intel", unknown product 0x2da8 rev 0x02
> pchb41 at pci1 dev 5 function 1 vendor "Intel", unknown product 0x2da9 rev 0x02
> pchb42 at pci1 dev 5 function 2 vendor "Intel", unknown product 0x2daa rev 0x02
> pchb43 at pci1 dev 5 function 3 vendor "Intel", unknown product 0x2dab rev 0x02
> pchb44 at pci1 dev 6 function 0 vendor "Intel", unknown product 0x2db0 rev 0x02
> pchb45 at pci1 dev 6 function 1 vendor "Intel", unknown product 0x2db1 rev 0x02
> pchb46 at pci1 dev 6 function 2 vendor "Intel", unknown product 0x2db2 rev 0x02
> pchb47 at pci1 dev 6 function 3 vendor "Intel", unknown product 0x2db3 rev 0x02
> pci2 at mainbus0 bus 0
> pchb48 at pci2 dev 0 function 0 "Intel 5520 Host" rev 0x13
> ppb0 at pci2 dev 1 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci3 at ppb0 bus 1
> mfi0 at pci3 dev 0 function 0 "Symbios Logic MegaRAID SAS2108 GEN2" rev 0x05: apic 2 int 4
> mfi0: "RAID Ctrl SAS 6G 5/6 512MB (D2616)", firmware 12.9.0-0051, 512MB cache
> scsibus1 at mfi0: 64 targets
> sd0 at scsibus1 targ 0 lun 0: <LSI, RAID 5/6 SAS 6G, 2.90> naa.6003005700e6adc01f11262d16c1ed27
> sd0: 1861632MB, 512 bytes/sector, 3812622336 sectors
> ppb1 at pci2 dev 3 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci4 at ppb1 bus 2
> bnxt0 at pci4 dev 0 function 0 "Broadcom BCM57412" rev 0x01: fw ver 214.4.91, msix, 8 queues, address 14:23:f2:a0:71:e0
> bnxt1 at pci4 dev 0 function 1 "Broadcom BCM57412" rev 0x01: fw ver 214.4.91, msix, 8 queues, address 14:23:f2:a0:71:e1
> ppb2 at pci2 dev 5 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci5 at ppb2 bus 3
> ixl0 at pci5 dev 0 function 0 "Intel X710 SFP+" rev 0x02: port 0, FW 6.0.48442 API 1.7, msix, 8 queues, address 40:a6:b7:6e:ad:a0
> ixl1 at pci5 dev 0 function 1 "Intel X710 SFP+" rev 0x02: port 1, FW 6.0.48442 API 1.7, msix, 8 queues, address 40:a6:b7:6e:ad:a1
> ppb3 at pci2 dev 7 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci6 at ppb3 bus 4
> ix0 at pci6 dev 0 function 0 "Intel 82599" rev 0x01, msix, 8 queues, address 90:e2:ba:d6:23:68
> ix1 at pci6 dev 0 function 1 "Intel 82599" rev 0x01, msix, 8 queues, address 90:e2:ba:d6:23:69
> ppb4 at pci2 dev 8 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci7 at ppb4 bus 5
> em0 at pci7 dev 0 function 0 "Intel I350" rev 0x01: msi, address a0:36:9f:0a:4a:c4
> em1 at pci7 dev 0 function 1 "Intel I350" rev 0x01: msi, address a0:36:9f:0a:4a:c5
> ppb5 at pci2 dev 9 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci8 at ppb5 bus 6
> vendor "Intel", unknown product 0x159b (class network subclass ethernet, rev 0x02) at pci8 dev 0 function 0 not configured
> vendor "Intel", unknown product 0x159b (class network subclass ethernet, rev 0x02) at pci8 dev 0 function 1 not configured
> ppb6 at pci2 dev 10 function 0 "Intel X58 PCIE" rev 0x13: msi
> pci9 at ppb6 bus 7
> ppb7 at pci9 dev 0 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01
> pci10 at ppb7 bus 8
> ppb8 at pci10 dev 0 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci11 at ppb8 bus 9
> igc0 at pci11 dev 0 function 0 "Intel I225-LM" rev 0x03, msix, 4 queues, address 24:5e:be:54:8a:41
> ppb9 at pci10 dev 2 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci12 at ppb9 bus 10
> igc1 at pci12 dev 0 function 0 "Intel I225-LM" rev 0x03, msix, 4 queues, address 24:5e:be:54:8a:40
> ppb10 at pci10 dev 3 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci13 at ppb10 bus 11
> ppb11 at pci10 dev 8 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci14 at ppb11 bus 12
> igc2 at pci14 dev 0 function 0 "Intel I225-LM" rev 0x03, msix, 4 queues, address 24:5e:be:54:8a:3f
> ppb12 at pci10 dev 10 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci15 at ppb12 bus 13
> igc3 at pci15 dev 0 function 0 "Intel I225-LM" rev 0x03, msix, 4 queues, address 24:5e:be:54:8a:3e
> ppb13 at pci10 dev 11 function 0 vendor "ASMedia", unknown product 0x1812 rev 0x01: msi
> pci16 at ppb13 bus 14
> "Intel X58 QuickPath" rev 0x13 at pci2 dev 16 function 0 not configured
> "Intel X58 QuickPath" rev 0x13 at pci2 dev 16 function 1 not configured
> "Intel X58 QuickPath" rev 0x13 at pci2 dev 17 function 0 not configured
> "Intel X58 QuickPath" rev 0x13 at pci2 dev 17 function 1 not configured
> "Intel X58 Misc" rev 0x13 at pci2 dev 20 function 0 not configured
> "Intel X58 GPIO" rev 0x13 at pci2 dev 20 function 1 not configured
> "Intel X58 RAS" rev 0x13 at pci2 dev 20 function 2 not configured
> "Intel X58 Throttle" rev 0x13 at pci2 dev 20 function 3 not configured
> vendor "Intel", unknown product 0x342f (class system subclass interrupt, rev 0x13) at pci2 dev 21 function 0 not configured
> uhci0 at pci2 dev 26 function 0 "Intel 82801JI USB" rev 0x00: apic 1 int 19
> uhci1 at pci2 dev 26 function 1 "Intel 82801JI USB" rev 0x00: apic 1 int 18
> uhci2 at pci2 dev 26 function 2 "Intel 82801JI USB" rev 0x00: apic 1 int 18
> ehci0 at pci2 dev 26 function 7 "Intel 82801JI USB" rev 0x00: apic 1 int 18
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> ppb14 at pci2 dev 28 function 0 "Intel 82801JI PCIE" rev 0x00: msi
> pci17 at ppb14 bus 15
> em2 at pci17 dev 0 function 0 "Intel 82575EB" rev 0x02: msi, address 00:19:99:ab:27:70
> em3 at pci17 dev 0 function 1 "Intel 82575EB" rev 0x02: msi, address 00:19:99:ab:27:71
> ppb15 at pci2 dev 28 function 4 "Intel 82801JI PCIE" rev 0x00: msi
> pci18 at ppb15 bus 16
> vga1 at pci18 dev 0 function 0 "Matrox MGA G200e" rev 0x02
> wsdisplay at vga1 not configured
> uhci3 at pci2 dev 29 function 0 "Intel 82801JI USB" rev 0x00: apic 1 int 23
> uhci4 at pci2 dev 29 function 1 "Intel 82801JI USB" rev 0x00: apic 1 int 22
> uhci5 at pci2 dev 29 function 2 "Intel 82801JI USB" rev 0x00: apic 1 int 21
> ehci1 at pci2 dev 29 function 7 "Intel 82801JI USB" rev 0x00: apic 1 int 23
> usb1 at ehci1: USB revision 2.0
> uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> ppb16 at pci2 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0x90
> pci19 at ppb16 bus 17
> pcib0 at pci2 dev 31 function 0 "Intel 82801JIB LPC" rev 0x00
> ahci0 at pci2 dev 31 function 2 "Intel 82801JI AHCI" rev 0x00: msi, AHCI 1.2
> ahci0: port 0: 1.5Gb/s
> scsibus2 at ahci0: 32 targets
> cd0 at scsibus2 targ 0 lun 0: <Optiarc, DVD RW AD-7710H, 1.40> removable
> ichiic0 at pci2 dev 31 function 3 "Intel 82801JI SMBus" rev 0x00: apic 1 int 17
> iic0 at ichiic0
> sdtemp0 at iic0 addr 0x18: stts424e02
> sdtemp1 at iic0 addr 0x1a: stts424e02
> sdtemp2 at iic0 addr 0x1c: stts424e02
> iic0: addr 0x2e 00=40 words 00=4040 01=0000 02=0000 03=0000 04=0000 05=0000 06=0000 07=0000
> "eeprom" at iic0 addr 0x50 not configured
> usb2 at uhci0: USB revision 1.0
> uhub2 at usb2 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb3 at uhci1: USB revision 1.0
> uhub3 at usb3 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb4 at uhci2: USB revision 1.0
> uhub4 at usb4 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb5 at uhci3: USB revision 1.0
> uhub5 at usb5 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb6 at uhci4: USB revision 1.0
> uhub6 at usb6 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb7 at uhci5: USB revision 1.0
> uhub7 at usb7 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> isa0 at pcib0
> isadma0 at isa0
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> vmm0 at mainbus0: VMX/EPT
> vscsi0 at root
> scsibus3 at vscsi0: 256 targets
> softraid0 at root
> scsibus4 at softraid0: 256 targets
> root on sd0a (019a7cb43da5f7eb.a) swap on sd0b dump on sd0b
> 
> root@ot42:.../~# vmstat -i
> interrupt                       total     rate
> irq144/com0                       211        0
> irq48/acpi0                         1        0
> irq50/mfi0                      24186       15
> irq64/bnxt0                         1        0
> irq65/bnxt0:0                 2003111     1284
> irq66/bnxt0:1                 1675207     1073
> irq67/bnxt0:2                 2293689     1470
> irq68/bnxt0:3                 1825445     1170
> irq69/bnxt0:4                 1651259     1058
> irq70/bnxt0:5                 1577326     1011
> irq71/bnxt0:6                 1558328      998
> irq72/bnxt0:7                 1337322      857
> irq73/bnxt1                         1        0
> irq74/bnxt1:0                  581307      372
> irq75/bnxt1:1                  563674      361
> irq76/bnxt1:2                  835536      535
> irq77/bnxt1:3                  581843      372
> irq78/bnxt1:4                  788827      505
> irq79/bnxt1:5                  767551      492
> irq80/bnxt1:6                  791369      507
> irq81/bnxt1:7                  533960      342
> irq82/ixl0                         20        0
> irq91/ixl1                         20        0
> irq108/ix0                          3        0
> irq119/ix1                          3        0
> irq120/em0                          3        0
> irq121/em1                          3        0
> irq126/igc0                         2        0
> irq131/igc1                         2        0
> irq132/igc2:0                    5818        3
> irq133/igc2:1                    2926        1
> irq134/igc2:2                    2250        1
> irq135/igc2:3                    8082        5
> irq136/igc2                         2        0
> irq141/igc3                         1        0
> irq146/em2                          3        0
> irq147/em3                          3        0
> irq152/ahci0                        1        0
> irq153/ichiic0                    936        0
> irq0/clock                    1511905      969
> irq0/ipi                     22199774    14230
> Total                        43121911    27642
>