public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
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/

  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