NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PR/47648 CVS commit: src/sys/arch/x86

On 2013-03-29 18:09, Chuck Silvers wrote:
> On Thu, Mar 28, 2013 at 10:29:12PM +0100, Lars Heidieker wrote:
>> Since these changes I see an interrupt storm in int 9 for !DIAGNOSTICS
>> and !DEBUG or DIAGNOSTICS & DEBUG kernels.
>> It goes away if I put the ioapic_reenable back into mpacpi_find_interrupts.
>> I think the problem has been there before as well but the
>> ioapic_reenable fixes it.
>> I've attached two dmesg print (same config but one with DIAGNOSTICS
>> enabled and the other one with DIAGNOISTICS & DEBUG)
>> In case of no interrupt storm
>> ioapic0: int9 0x8060<vector=0x60,delmode=0x0,level,dest=0x0> 0x0<target=0x0>
>> In case of interrupt storm
>> ioapic0: int9
>> 0xb060<vector=0x60,delmode=0x0,pending,actlo,level,dest=0x0> 0x0<target=0x0>
> ok, apparently my new code in acpi_md_OsInstallInterruptHandler() gets the 
> polarity wrong,
> but mpacpi_nonpci_intr() which is called later gets it right, and call to 
> ioapic_reenable()
> pushes the corrected info into the hardware.  could you add some printfs to 
> both of these
> to see why they are coming to different conclusions about what "redir" should 
> be?
> -Chuck

Ok, I think I know what is going wrong, the memory for interrupt maps
gets allocated in mpacpi_config_irouting and
acpi_md_OsInstallInterruptHandler uses that memory to store config if
allocated and to a tmpmap if not (dropping that info).
apic_set_redir uses that config if allocated and defaults otherwise
but as mpacpi_config_irouting runs after the SCI gets installed, we
might endup with wrong values.

I tend to think that putting the ioapic_reenable back into
mpacpi_find_interrupts should do.



Mystische Erklärungen:
Die mystischen Erklärungen gelten für tief;
die Wahrheit ist, dass sie noch nicht einmal oberflächlich sind.

   -- Friedrich Nietzsche
   [ Die Fröhliche Wissenschaft Buch 3, 126 ]

Home | Main Index | Thread Index | Old Index