svn commit: r194985 - in head/sys: amd64/amd64 amd64/include i386/i386 i386/include

John Baldwin jhb at
Thu Jun 25 18:52:18 UTC 2009

On Thursday 25 June 2009 2:13:46 pm John Baldwin wrote:
> Author: jhb
> Date: Thu Jun 25 18:13:46 2009
> New Revision: 194985
> URL:
> Log:
>   - Restore the behavior of pre-allocating IDT vectors for MSI interrupts.
>     This is mostly important for the multiple MSI message case where the
>     IDT vectors for the entire group need to be allocated together.  This
>     also restores the assumptions made by the PCI bus code that it could
>     invoke PCIB_MAP_MSI() once MSI vectors were allocated.
>   - To avoid whiplash with CPU assignments, change the way that CPUs are
>     assigned to interrupt sources on activation.  Instead of assigning the
>     CPU via pic_assign_cpu() before calling enable_intr(), allow the
>     different interrupt source drivers to ask the MD interrupt code which
>     CPU to use when they allocate an IDT vector.  I/O APIC interrupt pins
>     do this in their pic_enable_intr() routines giving the same behavior as
>     before.  MSI sources do it when the IDT vectors are allocated during
>     msi_alloc() and msix_alloc().
>   - Change the intr_table_lock from an sx lock to a mutex.

Incidentally, this fixes the remaining issues Robert was having with VT switch 
with Intel DRM drivers.  It is still not possible to migrate multiple MSI 
interrupts, but I intend to work on that next.

John Baldwin

More information about the svn-src-all mailing list