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 _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "[email protected]"
