Date: Fri, 22 Sep 2023 13:00:56 +0200 From: John Hay <john@sanren.ac.za> To: freebsd-drivers@freebsd.org Subject: debugging a msi interrupt panic Message-ID: <CAGv8uapeZ2VaBAsf76FAk-335o5FDw935qd1JTjDEEArH7s6tA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--0000000000008eedcc0605f086ba Content-Type: text/plain; charset="UTF-8" Hi, How do one debug msi interrupts on FreeBSD when writing a device driver? I'm writing a driver for a OCP TimeCard. The card has several different functions, each "tied" to a specific msi interrupt. So it would be useful to use multiple msi interrupts. The PCIe functionality is a Xilinx AXI PCIe blob, with 32 MSI interrupts. It does not have MSI-X capability. <snip> # pciconf -lbc none1@pci0:1:0:0: none0@pci0:1:0:0: class=0x058000 rev=0x00 hdr=0x00 vendor=0x1d9b device=0x0400 subvendor=0x10ee subdevice=0x0007 bar [10] = type Memory, range 32, base 0xf4000000, size 33554432, enabled cap 01[40] = powerspec 3 supports D0 D3 current D0 cap 05[48] = MSI supports 32 messages, 64 bit cap 10[60] = PCI-Express 2 endpoint max data 256(256) NS max read 512 link x1(x1) speed 2.5(2.5) ASPM disabled(L0s) ecap 0003[100] = Serial 1 0000000000000000 </snip> Currently in attach, I'm doing the following (error checking removed): <snip> pci_enable_busmaster(dev); /* msi irq needs it enabled, at least for the AXI core */ sc->sc_msi = pci_msi_count(dev); pci_alloc_msi(dev, &sc->sc_msi) loop for each function /* currently just a single iteration to get one function working */ port->pp_irid = port->intr_num + 1; /* msi irq no starts at one */ port->pp_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &port->pp_irid, RF_ACTIVE | RF_SHAREABLE); bus_setup_intr(dev, port->pp_ires, INTR_TYPE_TTY | INTR_MPSAFE, timecard_intr, NULL, port, &port->p_ihandle) </snip> I did define a variable timecard_intr_count that timecard_intr() should increment, but it does not change, so timecard_intr() probably does not get called. Here is the console output of the panic and a show apic and show lapic. The driver is not compiled in, but loaded later manually. <snip> pci0: driver added found-> vendor=0x8086, dev=0x1e3a, revid=0x04 domain=0, bus=0, slot=22, func=0 class=07-80-00, hdrtype=0x00, mfdev=1 cmdreg=0x0006, statreg=0x0010, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=16 powerspec 3 supports D0 D3 current D0 MSI supports 1 message, 64 bit pci0:0:22:0: reprobing on driver added timecard0: TimeCard Probe Vendor ID : 0x8086 Device ID : 0x1e3a pci1: driver added found-> vendor=0x1d9b, dev=0x0400, revid=0x00 domain=0, bus=1, slot=0, func=0 class=05-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0002, statreg=0x0010, cachelnsz=16 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) powerspec 3 supports D0 D3 current D0 MSI supports 32 messages, 64 bit pci0:1:0:0: reprobing on driver added timecard0: TimeCard Probe Vendor ID : 0x1d9b Device ID : 0x400 We've got the TimeCard, probe successful! timecard0: TimeCard Probe Vendor ID : 0x1d9b Device ID : 0x400 We've got the TimeCard, probe successful! timecard0: <TimeCard> mem 0xf4000000-0xf5ffffff at device 0.0 on pci1 TimeCard Attach for : deviceID : 0x4001d9b Address of timecard_intr_count 0xffffffff8314e400 timecard0: attempting to allocate 32 MSI vectors (32 supported) msi: routing MSI IRQ 38 to local APIC 4 vector 80 msi: routing MSI IRQ 39 to local APIC 4 vector 81 msi: routing MSI IRQ 40 to local APIC 4 vector 82 msi: routing MSI IRQ 41 to local APIC 4 vector 83 msi: routing MSI IRQ 42 to local APIC 4 vector 84 msi: routing MSI IRQ 43 to local APIC 4 vector 85 msi: routing MSI IRQ 44 to local APIC 4 vector 86 msi: routing MSI IRQ 45 to local APIC 4 vector 87 msi: routing MSI IRQ 46 to local APIC 4 vector 88 msi: routing MSI IRQ 47 to local APIC 4 vector 89 msi: routing MSI IRQ 48 to local APIC 4 vector 90 msi: routing MSI IRQ 49 to local APIC 4 vector 91 msi: routing MSI IRQ 50 to local APIC 4 vector 92 msi: routing MSI IRQ 51 to local APIC 4 vector 93 msi: routing MSI IRQ 52 to local APIC 4 vector 94 msi: routing MSI IRQ 53 to local APIC 4 vector 95 msi: routing MSI IRQ 54 to local APIC 4 vector 96 msi: routing MSI IRQ 55 to local APIC 4 vector 97 msi: routing MSI IRQ 56 to local APIC 4 vector 98 msi: routing MSI IRQ 57 to local APIC 4 vector 99 msi: routing MSI IRQ 58 to local APIC 4 vector 100 msi: routing MSI IRQ 59 to local APIC 4 vector 101 msi: routing MSI IRQ 60 to local APIC 4 vector 102 msi: routing MSI IRQ 61 to local APIC 4 vector 103 msi: routing MSI IRQ 62 to local APIC 4 vector 104 msi: routing MSI IRQ 63 to local APIC 4 vector 105 msi: routing MSI IRQ 64 to local APIC 4 vector 106 msi: routing MSI IRQ 65 to local APIC 4 vector 107 msi: routing MSI IRQ 66 to local APIC 4 vector 108 msi: routing MSI IRQ 67 to local APIC 4 vector 109 msi: routing MSI IRQ 68 to local APIC 4 vector 110 msi: routing MSI IRQ 69 to local APIC 4 vector 111 timecard0: using IRQs 38-69 for MSI TimeCard msi 32 rman iomem start f4000000, end f5ffffff, size 2000000 timecard_corelist_read did not find list, using fb list 1 nports 1 Start with uart 0 0 irq 41, irid 4 Fatal trap 30: reserved (unknown) fault while in kernel mode cpuid = 2; apic id = 04 port irq rid 4 instruction pointer = 0x20:0xffffffff804dda2d stack pointer = 0x28:0xfffffe001b1d8de0 TimeCard device loaded. pci2: driver added pci3: driver added pci4: driver added frame pointer = 0x28:0xfffffe001b1d8e10 code segment = base 0x0, limit 0xfffff, type 0x1b pci5: driver added = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, IOPL = 0 current process = 11 (idle: cpu2) trap number = 30 panic: reserved (unknown) fault cpuid = 2 time = 1695375919 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe001b1d8c00 vpanic() at vpanic+0x151/frame 0xfffffe001b1d8c50 panic() at panic+0x43/frame 0xfffffe001b1d8cb0 trap_fatal() at trap_fatal+0x387/frame 0xfffffe001b1d8d10 calltrap() at calltrap+0x8/frame 0xfffffe001b1d8d10 --- trap 0x1e, rip = 0xffffffff804dda2d, rsp = 0xfffffe001b1d8de0, rbp = 0xfffffe001b1d8e10 --- acpi_cpu_idle() at acpi_cpu_idle+0x28d/frame 0xfffffe001b1d8e10 cpu_idle_acpi() at cpu_idle_acpi+0x4d/frame 0xfffffe001b1d8e30 cpu_idle() at cpu_idle+0xac/frame 0xfffffe001b1d8e50 sched_idletd() at sched_idletd+0x4b1/frame 0xfffffe001b1d8ef0 fork_exit() at fork_exit+0x80/frame 0xfffffe001b1d8f30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe001b1d8f30 --- trap 0xe0c2545f, rip = 0x8f4a0c76246ffed9, rsp = 0x670c1cf091ea5e5b, rbp = 0x57639a151e2b2985 --- KDB: enter: panic [ thread pid 11 tid 100005 ] Stopped at kdb_enter+0x37: movq $0,0x129840e(%rip) db> x/wx timecard_intr_count timecard_intr_count: 0 db> show apic Interrupts bound to lapic 0 vec 0x30 -> IRQ 9 vec 0x31 -> IRQ 28 vec 0x32 -> IRQ 31 vec 0x33 -> IRQ 24 vec 0x34 -> IRQ 29 vec 0x35 -> IRQ 30 vec 0x36 -> IRQ 8 vec 0x37 -> IRQ 16 vec 0x38 -> IRQ 36 vec 0x39 -> IRQ 1 vec 0xef -> lapic timer Interrupts bound to lapic 2 vec 0x30 -> IRQ 25 vec 0x31 -> IRQ 33 vec 0x32 -> IRQ 23 vec 0x33 -> IRQ 18 vec 0xef -> lapic timer Interrupts bound to lapic 4 vec 0x30 -> IRQ 26 vec 0x31 -> IRQ 0 vec 0x32 -> IRQ 34 vec 0x33 -> IRQ 37 vec 0x50 -> IRQ 38 vec 0x51 -> IRQ 39 vec 0x52 -> IRQ 40 vec 0x53 -> IRQ 41 vec 0x54 -> IRQ 42 vec 0x55 -> IRQ 43 vec 0x56 -> IRQ 44 vec 0x57 -> IRQ 45 vec 0x58 -> IRQ 46 vec 0x59 -> IRQ 47 vec 0x5a -> IRQ 48 vec 0x5b -> IRQ 49 vec 0x5c -> IRQ 50 vec 0x5d -> IRQ 51 vec 0x5e -> IRQ 52 vec 0x5f -> IRQ 53 vec 0x60 -> IRQ 54 vec 0x61 -> IRQ 55 vec 0x62 -> IRQ 56 vec 0x63 -> IRQ 57 vec 0x64 -> IRQ 58 vec 0x65 -> IRQ 59 vec 0x66 -> IRQ 60 vec 0x67 -> IRQ 61 vec 0x68 -> IRQ 62 vec 0x69 -> IRQ 63 vec 0x6a -> IRQ 64 vec 0x6b -> IRQ 65 vec 0x6c -> IRQ 66 vec 0x6d -> IRQ 67 vec 0x6e -> IRQ 68 vec 0x6f -> IRQ 69 vec 0xef -> lapic timer Interrupts bound to lapic 6 vec 0x30 -> IRQ 27 vec 0x31 -> IRQ 32 vec 0x32 -> IRQ 35 vec 0x33 -> IRQ 4 vec 0xef -> lapic timer db> show lapic lapic ID = 4 version = 1.5 max LVT = 6 SVR = ff (enabled) TPR = 00 In-service Interrupts: isr2: 43 TMR Interrupts: IRR Interrupts: irr1: 32 33 irr2: 43 irr7: ef db> </snip> Regards John --0000000000008eedcc0605f086ba Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hi,</div><div><br></div><div>How do one debug msi int= errupts on FreeBSD when writing a device driver?</div><div><br></div><div>I= 'm writing a driver for a OCP TimeCard. The card has several different = functions, each "tied" to a specific msi interrupt. So it would b= e useful to use multiple msi interrupts. The PCIe functionality is a Xilinx= AXI PCIe blob, with 32 MSI interrupts. It does not have MSI-X capability.<= br></div><div><br></div><div><snip><br></div><div># pciconf -lbc none= 1@pci0:1:0:0:<br>none0@pci0:1:0:0: class=3D0x058000 rev=3D0x00 hdr=3D0x00 v= endor=3D0x1d9b device=3D0x0400 subvendor=3D0x10ee subdevice=3D0x0007<br>=C2= =A0 =C2=A0 bar =C2=A0 [10] =3D type Memory, range 32, base 0xf4000000, size= 33554432, enabled<br>=C2=A0 =C2=A0 cap 01[40] =3D powerspec 3 =C2=A0suppor= ts D0 D3 =C2=A0current D0<br>=C2=A0 =C2=A0 cap 05[48] =3D MSI supports 32 m= essages, 64 bit <br>=C2=A0 =C2=A0 cap 10[60] =3D PCI-Express 2 endpoint max= data 256(256) NS<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0max read 512<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0link x1(x1) speed 2.5(2.5) ASPM disabled(L0s)<br>=C2=A0 =C2=A0= ecap 0003[100] =3D Serial 1 0000000000000000<br></div><div></snip><b= r></div><div><br></div><div>Currently in attach, I'm doing the followin= g (error checking removed):</div><div><br></div><div><snip><br></div>= <div>pci_enable_busmaster(dev); /* msi irq needs it enabled, at least for t= he AXI core */<br></div><div>sc->sc_msi =3D pci_msi_count(dev);</div><di= v>pci_alloc_msi(dev, &sc->sc_msi)</div><div>loop for each function /= * currently just a single iteration to get one function working */<br></div= ><div>=C2=A0=C2=A0 port->pp_irid =3D port->intr_num + 1; /* msi irq n= o starts at one */<br></div><div>=C2=A0=C2=A0 port->pp_ires =3D bus_allo= c_resource_any(dev, SYS_RES_IRQ, &port->pp_irid, RF_ACTIVE | RF_SHAR= EABLE);</div><div>=C2=A0=C2=A0 bus_setup_intr(dev, port->pp_ires, INTR_T= YPE_TTY | INTR_MPSAFE, timecard_intr, NULL, port, &port->p_ihandle)<= /div><div></snip></div><div><br></div><div>I did define a variable ti= mecard_intr_count that timecard_intr() should increment, but it does not ch= ange, so timecard_intr() probably does not get called.</div><div><br></div>= <div>Here is the console output of the panic and a show apic and show lapic= . The driver is not compiled in, but loaded later manually.</div><div><br><= /div><div><snip></div><div>pci0: driver added<br>found-> vendor=3D= 0x8086, dev=3D0x1e3a, revid=3D0x04<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 domain=3D= 0, bus=3D0, slot=3D22, func=3D0<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 class=3D07-8= 0-00, hdrtype=3D0x00, mfdev=3D1<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 cmdreg=3D0x0= 006, statreg=3D0x0010, cachelnsz=3D0 (dwords)<br>=C2=A0 =C2=A0 =C2=A0 =C2= =A0 lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00 (0 ns)<br>= =C2=A0 =C2=A0 =C2=A0 =C2=A0 intpin=3Da, irq=3D16<br>=C2=A0 =C2=A0 =C2=A0 = =C2=A0 powerspec 3 =C2=A0supports D0 D3 =C2=A0current D0<br>=C2=A0 =C2=A0 = =C2=A0 =C2=A0 MSI supports 1 message, 64 bit<br>pci0:0:22:0: reprobing on d= river added<br>timecard0: TimeCard Probe<br>Vendor ID : 0x8086<br>Device ID= : 0x1e3a<br>pci1: driver added<br>found-> vendor=3D0x1d9b, dev=3D0x0400= , revid=3D0x00<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 domain=3D0, bus=3D1, slot=3D0= , func=3D0<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 class=3D05-80-00, hdrtype=3D0x00,= mfdev=3D0<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 cmdreg=3D0x0002, statreg=3D0x0010= , cachelnsz=3D16 (dwords)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 lattimer=3D0x00 (0= ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00 (0 ns)<br>=C2=A0 =C2=A0 =C2=A0 = =C2=A0 powerspec 3 =C2=A0supports D0 D3 =C2=A0current D0<br>=C2=A0 =C2=A0 = =C2=A0 =C2=A0 MSI supports 32 messages, 64 bit<br>pci0:1:0:0: reprobing on = driver added<br>timecard0: TimeCard Probe<br>Vendor ID : 0x1d9b<br>Device I= D : 0x400<br>We've got the TimeCard, probe successful!<br>timecard0: Ti= meCard Probe<br>Vendor ID : 0x1d9b<br>Device ID : 0x400<br>We've got th= e TimeCard, probe successful!<br>timecard0: <TimeCard> mem 0xf4000000= -0xf5ffffff at device 0.0 on pci1<br>TimeCard Attach for : deviceID : 0x400= 1d9b<br>Address of timecard_intr_count 0xffffffff8314e400<br>timecard0: att= empting to allocate 32 MSI vectors (32 supported)<br>msi: routing MSI IRQ 3= 8 to local APIC 4 vector 80<br>msi: routing MSI IRQ 39 to local APIC 4 vect= or 81<br>msi: routing MSI IRQ 40 to local APIC 4 vector 82<br>msi: routing = MSI IRQ 41 to local APIC 4 vector 83<br>msi: routing MSI IRQ 42 to local AP= IC 4 vector 84<br>msi: routing MSI IRQ 43 to local APIC 4 vector 85<br>msi:= routing MSI IRQ 44 to local APIC 4 vector 86<br>msi: routing MSI IRQ 45 to= local APIC 4 vector 87<br>msi: routing MSI IRQ 46 to local APIC 4 vector 8= 8<br>msi: routing MSI IRQ 47 to local APIC 4 vector 89<br>msi: routing MSI = IRQ 48 to local APIC 4 vector 90<br>msi: routing MSI IRQ 49 to local APIC 4= vector 91<br>msi: routing MSI IRQ 50 to local APIC 4 vector 92<br>msi: rou= ting MSI IRQ 51 to local APIC 4 vector 93<br>msi: routing MSI IRQ 52 to loc= al APIC 4 vector 94<br>msi: routing MSI IRQ 53 to local APIC 4 vector 95<br= >msi: routing MSI IRQ 54 to local APIC 4 vector 96<br>msi: routing MSI IRQ = 55 to local APIC 4 vector 97<br>msi: routing MSI IRQ 56 to local APIC 4 vec= tor 98<br>msi: routing MSI IRQ 57 to local APIC 4 vector 99<br>msi: routing= MSI IRQ 58 to local APIC 4 vector 100<br>msi: routing MSI IRQ 59 to local = APIC 4 vector 101<br>msi: routing MSI IRQ 60 to local APIC 4 vector 102<br>= msi: routing MSI IRQ 61 to local APIC 4 vector 103<br>msi: routing MSI IRQ = 62 to local APIC 4 vector 104<br>msi: routing MSI IRQ 63 to local APIC 4 ve= ctor 105<br>msi: routing MSI IRQ 64 to local APIC 4 vector 106<br>msi: rout= ing MSI IRQ 65 to local APIC 4 vector 107<br>msi: routing MSI IRQ 66 to loc= al APIC 4 vector 108<br>msi: routing MSI IRQ 67 to local APIC 4 vector 109<= br>msi: routing MSI IRQ 68 to local APIC 4 vector 110<br>msi: routing MSI I= RQ 69 to local APIC 4 vector 111<br>timecard0: using IRQs 38-69 for MSI<br>= TimeCard msi 32<br>rman iomem start f4000000, end f5ffffff, size 2000000<br= >timecard_corelist_read did not find list, using fb list 1<br>nports 1<br>S= tart with uart 0 0<br>irq 41, irid 4<br><br><br>Fatal trap 30: reserved (un= known) fault while in kernel mode<br>cpuid =3D 2; apic id =3D 04<br>port ir= q rid 4<br>instruction pointer =C2=A0 =C2=A0 =3D 0x20:0xffffffff804dda2d<br= >stack pointer =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D 0x28:0xfffffe001b1d8d= e0<br>TimeCard device loaded.<br>pci2: driver added<br>pci3: driver added<b= r>pci4: driver added<br>frame pointer =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =3D 0x28:0xfffffe001b1d8e10<br>code segment =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0=3D base 0x0, limit 0xfffff, type 0x1b<br>pci5: driver added<br>= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =3D DPL 0, pres 1, long 1, def32 0, gran 1<br>processor eflags = =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D interrupt enabled, IOPL =3D 0<br>current pro= cess =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D 11 (idle: cpu2)<br>trap number =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D 30<br>panic: reserved (unknown) faul= t<br>cpuid =3D 2<br>time =3D 1695375919<br>KDB: stack backtrace:<br>db_trac= e_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe001b1d8c00<br>= vpanic() at vpanic+0x151/frame 0xfffffe001b1d8c50<br>panic() at panic+0x43/= frame 0xfffffe001b1d8cb0<br>trap_fatal() at trap_fatal+0x387/frame 0xfffffe= 001b1d8d10<br>calltrap() at calltrap+0x8/frame 0xfffffe001b1d8d10<br>--- tr= ap 0x1e, rip =3D 0xffffffff804dda2d, rsp =3D 0xfffffe001b1d8de0, rbp =3D 0x= fffffe001b1d8e10 ---<br>acpi_cpu_idle() at acpi_cpu_idle+0x28d/frame 0xffff= fe001b1d8e10<br>cpu_idle_acpi() at cpu_idle_acpi+0x4d/frame 0xfffffe001b1d8= e30<br>cpu_idle() at cpu_idle+0xac/frame 0xfffffe001b1d8e50<br>sched_idletd= () at sched_idletd+0x4b1/frame 0xfffffe001b1d8ef0<br>fork_exit() at fork_ex= it+0x80/frame 0xfffffe001b1d8f30<br>fork_trampoline() at fork_trampoline+0x= e/frame 0xfffffe001b1d8f30<br>--- trap 0xe0c2545f, rip =3D 0x8f4a0c76246ffe= d9, rsp =3D 0x670c1cf091ea5e5b, rbp =3D 0x57639a151e2b2985 ---<br>KDB: ente= r: panic<br>[ thread pid 11 tid 100005 ]<br>Stopped at =C2=A0 =C2=A0 =C2=A0= kdb_enter+0x37: movq =C2=A0 =C2=A0$0,0x129840e(%rip)<br>db> x/wx timecar= d_intr_count<br>timecard_intr_count: =C2=A0 =C2=A00<br>db> show apic<br>= Interrupts bound to lapic 0<br>vec 0x30 -> IRQ 9<br>vec 0x31 -> IRQ 2= 8<br>vec 0x32 -> IRQ 31<br>vec 0x33 -> IRQ 24<br>vec 0x34 -> IRQ 2= 9<br>vec 0x35 -> IRQ 30<br>vec 0x36 -> IRQ 8<br>vec 0x37 -> IRQ 16= <br>vec 0x38 -> IRQ 36<br>vec 0x39 -> IRQ 1<br>vec 0xef -> lapic t= imer<br>Interrupts bound to lapic 2<br>vec 0x30 -> IRQ 25<br>vec 0x31 -&= gt; IRQ 33<br>vec 0x32 -> IRQ 23<br>vec 0x33 -> IRQ 18<br>vec 0xef -&= gt; lapic timer<br>Interrupts bound to lapic 4<br>vec 0x30 -> IRQ 26<br>= vec 0x31 -> IRQ 0<br>vec 0x32 -> IRQ 34<br>vec 0x33 -> IRQ 37<br>v= ec 0x50 -> IRQ 38<br>vec 0x51 -> IRQ 39<br>vec 0x52 -> IRQ 40<br>v= ec 0x53 -> IRQ 41<br>vec 0x54 -> IRQ 42<br>vec 0x55 -> IRQ 43<br>v= ec 0x56 -> IRQ 44<br>vec 0x57 -> IRQ 45<br>vec 0x58 -> IRQ 46<br>v= ec 0x59 -> IRQ 47<br>vec 0x5a -> IRQ 48<br>vec 0x5b -> IRQ 49<br>v= ec 0x5c -> IRQ 50<br>vec 0x5d -> IRQ 51<br>vec 0x5e -> IRQ 52<br>v= ec 0x5f -> IRQ 53<br>vec 0x60 -> IRQ 54<br>vec 0x61 -> IRQ 55<br>v= ec 0x62 -> IRQ 56<br>vec 0x63 -> IRQ 57<br>vec 0x64 -> IRQ 58<br>v= ec 0x65 -> IRQ 59<br>vec 0x66 -> IRQ 60<br>vec 0x67 -> IRQ 61<br>v= ec 0x68 -> IRQ 62<br>vec 0x69 -> IRQ 63<br>vec 0x6a -> IRQ 64<br>v= ec 0x6b -> IRQ 65<br>vec 0x6c -> IRQ 66<br>vec 0x6d -> IRQ 67<br>v= ec 0x6e -> IRQ 68<br>vec 0x6f -> IRQ 69<br>vec 0xef -> lapic timer= <br>Interrupts bound to lapic 6<br>vec 0x30 -> IRQ 27<br>vec 0x31 -> = IRQ 32<br>vec 0x32 -> IRQ 35<br>vec 0x33 -> IRQ 4<br>vec 0xef -> l= apic timer<br>db> show lapic<br>lapic ID =3D 4<br>version =C2=A0=3D 1.5<= br>max LVT =C2=A0=3D 6<br>SVR =C2=A0 =C2=A0 =C2=A0=3D ff (enabled)<br>TPR = =C2=A0 =C2=A0 =C2=A0=3D 00<br>In-service Interrupts:<br>isr2: 43<br>TMR Int= errupts:<br>IRR Interrupts:<br>irr1: 32 33<br>irr2: 43<br>irr7: ef<br>db>= ; <br></div><div></snip></div><div><br></div><div>Regards</div><div><= br></div><div>John</div><div><br></div></div> --0000000000008eedcc0605f086ba--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGv8uapeZ2VaBAsf76FAk-335o5FDw935qd1JTjDEEArH7s6tA>