cvs commit: src/sys/amd64/amd64 mptable_pci.c msi.c nexus.c src/sys/amd64/include intr_machdep.h src/sys/amd64/pci pci_bus.c src/sys/dev/acpica acpi_pcib_acpi.c acpi_pcib_pci.c src/sys/dev/pci pci.c pci_if.m pci_pci.c pci_private.h pcib_if.m ...

Rui Paulo rpaulo at fnop.net
Fri May 4 15:50:25 UTC 2007


At Wed, 2 May 2007 17:50:36 +0000 (UTC),
John Baldwin wrote:
> 
> jhb         2007-05-02 17:50:36 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/amd64/amd64      mptable_pci.c msi.c nexus.c 
>     sys/amd64/include    intr_machdep.h 
>     sys/amd64/pci        pci_bus.c 
>     sys/dev/acpica       acpi_pcib_acpi.c acpi_pcib_pci.c 
>     sys/dev/pci          pci.c pci_if.m pci_pci.c pci_private.h 
>                          pcib_if.m pcib_private.h pcivar.h 
>     sys/i386/i386        mptable_pci.c msi.c nexus.c 
>     sys/i386/include     intr_machdep.h 
>     sys/i386/pci         pci_bus.c 
>   Log:
>   Revamp the MSI/MSI-X code a bit to achieve two main goals:
>   - Simplify the amount of work that has be done for each architecture by
>     pushing more of the truly MI code down into the PCI bus driver.
>   - Don't bind MSI-X indicies to IRQs so that we can allow a driver to map
>     multiple MSI-X messages into a single IRQ when handling a message
>     shortage.


With this change, I think, I get a WITNESS panic when booting the
second core on my MacBook

After SMP: AP #1 Launched, I get this panic:
panic: blockable sleep lock (sx) msi @ i386/i386/msi.c:374

The backtrace is:
witness_checkorder()
_sx_lock()
msi_map()
nexus_map_msi()
acpi_pcib_map_msi()
pcib_map_msi()
pci_remap_msi_irq()
msi_assign_cpu()

Any idea why?


More information about the cvs-src mailing list