Date: Thu, 8 Dec 2005 23:26:36 -0500 From: John Baldwin <jhb@freebsd.org> To: "Darren Pilgrim" <darren.pilgrim@bitfreak.org> Cc: freebsd-current@freebsd.org Subject: Re: can someone explain...[ PCI interrupts] Message-ID: <200512082326.37351.jhb@freebsd.org> In-Reply-To: <000101c5fc28$f791b520$642a15ac@smiley> References: <000101c5fc28$f791b520$642a15ac@smiley>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 08 December 2005 01:55 pm, Darren Pilgrim wrote: > From: John Baldwin > > > On Wednesday 07 December 2005 06:11 pm, Darren Pilgrim wrote: > > > What if the APIC was programmed to be edge-triggered just before the > > > ithread runs and programmed back to level-trigger when the ithread > > > completes? > > > > I'd rather work on my other solution which might be about 5 lines of co= de > > rather than screw around with the APICs when that might have other side > > effects. > > My apologies, I didn't intend to come off as dictating design. I'm > interested in the subject and it's rare to find people knowledgeable and > willing to converse about more advanced topics. > > Like many others here, I have a very significant investment in hardware to > which this directly relates. I wanted to find out about the details of t= he > behavior I'm observing and the impact of various solutions as both a > business man and a student of engineering. In fairness, Linux does seem to mess with the APICs this way (set to edge w= hen=20 an interrupt comes in and then reset it to level) to work around a bug on=20 some older I/O APICs. I'm not sure / can't remember if they do it for all= =20 PCI interrupts on APICs though. I need to look at the docs for the PXH=20 bridges in question again, but I think that when it does the legacy INTx=20 thing it is swizzling the interrupts to the bridge's INTx pins using the=20 standard PCI-PCI swizzle, in which case patching around the routing is a=20 simple patch of changing the $PIR and MPTable drivers to ignore such bridge= s=20 based on the devid, and changing the ACPI PCI-PCI bridge driver to ignore t= he=20 _PRT for such bridges. Fortunately, one of my recently added test machines= =20 reproduces the problem so I can test this idea and give people a patch that= =20 at least somewhat works for further testing. Maybe in a day or so. =2D-=20 John Baldwin <jhb@FreeBSD.org> =A0<>< =A0http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" =A0=3D =A0http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512082326.37351.jhb>