Interrupt storm

John Baldwin jhb at FreeBSD.org
Tue Apr 12 10:08:33 PDT 2005


On Tuesday 12 April 2005 03:27 am, Antoine Brodin wrote:
> John Baldwin <jhb at FreeBSD.org> wrote:
> > On Saturday 09 April 2005 05:57 am, Antoine Brodin wrote:
> > > John Baldwin <jhb at FreeBSD.org> wrote:
> > > > I think your other link devices are meant to be used in APIC mode
> > > > (note their names start with 'A') and thus I think they are aliases
> > > > for the other link devices.  So when I turn off the alias, I turn off
> > > > the non-APIC mode one as well.  Working BIOSen handle this by having
> > > > the same link device change its behavior (different _PRS return
> > > > values) depending on the PIC mode.  It's not easy to determine if a
> > > > link is just not used (for example, if no card is plugged into a slot
> > > > with a dedicated link) or if it's an alias.  I think having two ACPI
> > > > devices alias to the same hardware is a bug in the BIOS though. 
> > > > Perhaps your BIOS vendor can be convinced to fix this.  Can you see
> > > > if Linux has the same problem btw?
> > >
> > > I've just sent a technical support request to ASUS. I'll let you know
> > > when they reply.
> > > Linux doesn't have the same problem: I tested with a knoppix live cd
> > > yesterday.
> > > dmesg: http://bsd.miki.eu.org/~antoine/knoppix36.dmesg , but it doesn't
> > > look very helpful.
> >
> > Actually, it is.  What Linux is doing is probing all the link devices
> > before it probes any PCI devices, so all the _DIS calls happen before any
> > interrupts are routed.  I believe Nate knows how to get FreeBSD to do
> > something similar via a hack.
>
> There's this hack that works here:
>
> %%%
> Index: acpi.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/acpica/acpi.c,v
> retrieving revision 1.210
> diff -u -p -r1.210 acpi.c
> --- acpi.c      31 Mar 2005 19:07:26 -0000      1.210
> +++ acpi.c      9 Apr 2005 09:50:54 -0000
> @@ -1503,6 +1503,9 @@ acpi_probe_order(ACPI_HANDLE handle, int
>      } else if (acpi_MatchHid(handle, "PNP0C09")) {
>  	*order = 2;
>  	ret = 1;
> +    } else if (acpi_MatchHid(handle, "PNP0C0F")) {
> +	*order = 3;
> +	ret = 1;
>      }
>
>      return (ret);
> %%%
>
> Cheers,
>
> Antoine

Right.  Do you think it would be ok to commit that Nate?

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-current mailing list