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

Alexander Motin mav at
Thu Jun 25 21:47:47 UTC 2009

John Baldwin wrote:
> On Thursday 25 June 2009 3:44:18 pm Alexander Motin wrote:
>> 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.
>>>   Tested by:	rnoland
>> It seems also fixed previously not working multi-vector MSI mode of AHCI 
>> on my less lucky laptop. Thanks.
> I still need to do additional work to make it possible to use cpuset to move
> multi-vector MSI groups around.  Does your laptop have multiple cores?

Yes. Two.

Alexander Motin

More information about the svn-src-all mailing list