From: Laurent Vivier <Laurent.Vivier-6ktuUTfB/bM@public.gmane.org>
To: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Cc: kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
Aurelien Jarno <aurelien-rXXEIb44qovR7s880joybQ@public.gmane.org>
Subject: Re: FreeBSD image hangs during boot
Date: Sat, 06 Oct 2007 10:38:33 +0200 [thread overview]
Message-ID: <47074989.9080100@bull.net> (raw)
In-Reply-To: <47066153.2040406-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Avi Kivity wrote:
> Aurelien Jarno wrote:
>> On Fri, Oct 05, 2007 at 03:25:05PM +0200, Laurent Vivier wrote:
>>
>>> Digging in the FreeBSD sources I found the origin of the problem:
>>>
>>> I added some ACPI traces:
>>>
>>> rsirq-0234 [13] RsIrqResource : Invalid interrupt polarity/trigger in
>>> resource list, 10
>>>
>>> Which is in /sys/contrib/dev/acpica/rsirq.c :
>>>
>>>
>>> /*
>>> * Check for HE, LL interrupts
>>> */
>>> switch (Temp8 & 0x09)
>>> {
>>> case 0x01: /* HE */
>>> OutputStruct->Data.Irq.EdgeLevel = ACPI_EDGE_SENSITIVE;
>>> OutputStruct->Data.Irq.ActiveHighLow = ACPI_ACTIVE_HIGH;
>>> break;
>>>
>>> case 0x08: /* LL */
>>> OutputStruct->Data.Irq.EdgeLevel = ACPI_LEVEL_SENSITIVE;
>>> OutputStruct->Data.Irq.ActiveHighLow = ACPI_ACTIVE_LOW;
>>> break;
>>>
>>> default:
>>> /*
>>> * Only _LL and _HE polarity/trigger interrupts
>>> * are allowed (ACPI spec, section "IRQ Format")
>>> * so 0x00 and 0x09 are illegal.
>>> */
>>> ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
>>> "Invalid interrupt polarity/trigger in resource list, %X\n", Tem
>>> p8));
>>> return_ACPI_STATUS (AE_BAD_DATA);
>>> }
>>>
>>>
>> Good catch!
>>
>>
>>> Conclusion, in kvm-userspace/bios/acpi-dsdt.dsl, if you have "ActiveHigh", you
>>> must have "Edge" instead of "Level":
>>>
>>> - IRQ (Level, ActiveHigh, Shared)
>>> + IRQ (Edge, ActiveHigh, Shared)
>>>
>>> But I found nothing in ACPI specification explaining the freeBSD behavior.
>>>
>>>
>>
>> It's actually described page 200 of the specifications (page 216 in
>> ACPIspec30.pdf):
>>
>> Note: This descriptor is meant for describing interrupts that are connected to PIC-compatible
>> interrupt controllers, which can only be programmed for Active-High-Edge-Triggered or Active-
>> Low-Level-Triggered interrupts. Any other combination is illegal. The Extended Interrupt
>> Descriptor can be used to describe other combinations.
>>
>>
>>
>>> Avi, if you think this anlysis is correct I can provide the patch changing
>>> "Level" to "Edge"...
>>>
>>>
>> It looks like the solution is either to describe the IRQ with an
>> "Extended Interrupt Descriptor" or to change this value to one of the
>> two allowed values. In the later case we have to make sure it is
>> consistent with the way the PIC works.
>>
>>
>
> Edge-triggered means we can't share interrupt lines. Since we have only
> two or three that limits the number of devices we can have.
>
> So I'd like to try moving to active low pci interrupts, and implementing
> polarity in the qemu ioapic. It's probably closer to real hardware anyway.
>
Avi,
I've two questions:
- why, when you implemented the ioapic polarity bit in kvm (commit
0203e2d5d0d0cea6eed6e437d9456aad71135913, kvm_ioapic_set_irq()), you
didn't implement it in qemu (in qemu/hw/apic.c ioapic_set_irq()) ?
- why implementing polarity changes active level in ACPI ?
Thanks,
Laurent
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
next prev parent reply other threads:[~2007-10-06 8:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-02 11:41 FreeBSD image hangs during boot Aurelien Jarno
[not found] ` <47022E7E.3030509-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-02 11:53 ` Laurent Vivier
[not found] ` <47023130.6000805-6ktuUTfB/bM@public.gmane.org>
2007-10-02 12:18 ` Aurelien Jarno
2007-10-02 12:09 ` Avi Kivity
[not found] ` <470234DF.6030802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-02 12:21 ` Aurelien Jarno
[not found] ` <470237DC.5060008-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-02 12:38 ` Avi Kivity
[not found] ` <47023BBB.3020806-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-10 20:42 ` Aurelien Jarno
2007-10-02 16:27 ` Avi Kivity
[not found] ` <47027161.50004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-02 16:44 ` Aurelien Jarno
[not found] ` <47027586.9020508-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-02 17:04 ` Aurelien Jarno
[not found] ` <47027A01.5080903-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-02 17:25 ` Aurelien Jarno
[not found] ` <47027F25.80001-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-10 11:17 ` Avi Kivity
[not found] ` <470CB4DE.20707-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-10 11:27 ` Aurelien Jarno
[not found] ` <470CB709.5050205-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-10 11:29 ` Avi Kivity
2007-10-10 13:21 ` Aurelien Jarno
[not found] ` <470CD1F1.20305-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-10-10 13:22 ` Avi Kivity
[not found] ` <470CD22C.5050003-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-10 13:47 ` Aurelien Jarno
[not found] ` <470CD7DF.2020906-rXXEIb44qovR7s880joybQ@public.gmane.org>
2007-11-08 6:41 ` Avi Kivity
[not found] ` <4732AF9B.9010201-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-08 9:44 ` Aurelien Jarno
2007-10-03 12:18 ` Laurent Vivier
2007-10-02 12:26 ` Laurent Vivier
[not found] ` <4702390F.9070809-6ktuUTfB/bM@public.gmane.org>
2007-10-02 12:59 ` Aurelien Jarno
2007-10-05 13:25 ` Laurent Vivier
[not found] ` <47063B31.6000001-6ktuUTfB/bM@public.gmane.org>
2007-10-05 13:51 ` Aurelien Jarno
[not found] ` <20071005135122.GA17767-OqXK5JiLQY5aJl8KAwiEcA@public.gmane.org>
2007-10-05 16:06 ` Laurent Vivier
2007-10-05 16:07 ` Avi Kivity
[not found] ` <47066153.2040406-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-05 16:36 ` Avi Kivity
2007-10-06 8:38 ` Laurent Vivier [this message]
[not found] ` <47074989.9080100-6ktuUTfB/bM@public.gmane.org>
2007-10-06 19:31 ` Avi Kivity
2007-10-08 7:57 ` Avi Kivity
[not found] ` <4709E2DF.10701-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-08 8:21 ` Laurent Vivier
[not found] ` <4709E896.1090806-6ktuUTfB/bM@public.gmane.org>
2007-10-08 9:39 ` Avi Kivity
[not found] ` <4709FAC1.8050502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-08 10:35 ` Laurent Vivier
[not found] ` <470A07FC.80407-6ktuUTfB/bM@public.gmane.org>
2007-10-08 10:47 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47074989.9080100@bull.net \
--to=laurent.vivier-6ktuutfb/bm@public.gmane.org \
--cc=aurelien-rXXEIb44qovR7s880joybQ@public.gmane.org \
--cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox