svn commit: r194985 - in head/sys: amd64/amd64 amd64/include
i386/i386 i386/include
John Baldwin
jhb at freebsd.org
Thu Jun 25 21:31:54 UTC 2009
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: http://svn.freebsd.org/changeset/base/194985
> >
> > 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?
--
John Baldwin
More information about the svn-src-head
mailing list