Date: Thu, 25 Jun 2009 14:46:13 -0400 From: John Baldwin <jhb@freebsd.org> To: src-committers@freebsd.org Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r194985 - in head/sys: amd64/amd64 amd64/include i386/i386 i386/include Message-ID: <200906251446.14106.jhb@freebsd.org> In-Reply-To: <200906251813.n5PIDkfl060004@svn.freebsd.org> References: <200906251813.n5PIDkfl060004@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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: 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. 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906251446.14106.jhb>