All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <mtosatti@redhat.com>
To: kvm-ia64@vger.kernel.org
Subject: Re: [RFC]RE: [PATCH] kvm-ia64 irq assignment 1/2  kernel
Date: Wed, 11 Jun 2008 16:02:34 +0000	[thread overview]
Message-ID: <20080611160234.GA3659@dmt.cnet> (raw)
In-Reply-To: <51CFAB8CB6883745AE7B93B3E084EBE201CC8A61@pdsmsx412.ccr.corp.intel.com>

On Wed, Jun 11, 2008 at 07:24:09AM -0700, Alexander Graf wrote:
>
> On Jun 10, 2008, at 12:57 AM, Xu, Anthony wrote:
>
>> Thanks for comments
>>
>> Basically we are on the same page, while I didn't find your patch about
>> irq assignment, can you post it in this thread again, thx?
>
> I'll attach it to this mail.
>
>> Below patch makes all PCI devices use level-trigger , active low
>> interrupt, it worked well when running linux guest, I didn't try windows
>> guest yet.
>> (didn't have windows image in hand)
>>
>> Please comment!
>>
>> If this is acceptabled, we can figure out how to use IOAPIC in kvm/ia32
>> based on this. Which will reduce irq sharing dramatically.
>>
>>
>> Thanks,
>> Anthony
>>
>>
>>
>> diff --git a/bios/acpi-dsdt.dsl b/bios/acpi-dsdt.dsl
>> index 21fc76a..4b5e824 100755
>> --- a/bios/acpi-dsdt.dsl
>> +++ b/bios/acpi-dsdt.dsl
>> @@ -974,7 +974,7 @@ DefinitionBlock (
>>                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
>>                 Name(_UID, 1)
>>                 Name(_PRS, ResourceTemplate(){
>> -                    Interrupt (, Level, ActiveHigh, Shared)
>> +                    Interrupt (, Level, ActiveLow, Shared)
>
> This looks pretty much correct to me ;-). You might also want to add the 
> GSI functionality I have in my patch. The only thing we have not discussed 
> so far is, how do interrupts get routed when _PIC is not set to 1, aka the 
> "boot case"?

Hi Alexander, Anthony,

I think it would be better to avoid static PCI pin -> IOAPIC pin
assignments, if PCI link devices can be used (allowing the OS to route
IRQ's as it wishes to).

Take a look at http://www.microsoft.com/whdc/archive/acpi-mp.mspx. It
seems cleaner to use "bimodal link nodes" (using the parlance from URL
above) instead of "bimodal _PRT" as your present GSI patch is using.

My current inclination is:

- Move the PCI interrupt link device code to a method in a separate file
  (with arguments such as _UID, IRQ list, etc).
- Create separate PCI interrupt link devices for each PCI pin of each
  slot (see the example table at end of URL).
- Assign all available IRQ's covered by the single IOAPIC (0-24) in the
  interrupt list for these interrupt link devices.

I'll try Anthony's patch with Windows.


WARNING: multiple messages have this Message-ID (diff)
From: Marcelo Tosatti <mtosatti@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: "Xu, Anthony" <anthony.xu@intel.com>,
	Avi Kivity <avi@qumranet.com>, Jes Sorensen <jes@sgi.com>,
	kvm@vger.kernel.org, kvm-ia64@vger.kernel.org
Subject: Re: [RFC]RE: [PATCH] kvm-ia64 irq assignment 1/2  kernel
Date: Wed, 11 Jun 2008 13:02:34 -0300	[thread overview]
Message-ID: <20080611160234.GA3659@dmt.cnet> (raw)
In-Reply-To: <6D2233ED-090D-4B6B-A305-838DDCEB3CD7@suse.de>

On Wed, Jun 11, 2008 at 07:24:09AM -0700, Alexander Graf wrote:
>
> On Jun 10, 2008, at 12:57 AM, Xu, Anthony wrote:
>
>> Thanks for comments
>>
>> Basically we are on the same page, while I didn't find your patch about
>> irq assignment, can you post it in this thread again, thx?
>
> I'll attach it to this mail.
>
>> Below patch makes all PCI devices use level-trigger , active low
>> interrupt, it worked well when running linux guest, I didn't try windows
>> guest yet.
>> (didn't have windows image in hand)
>>
>> Please comment!
>>
>> If this is acceptabled, we can figure out how to use IOAPIC in kvm/ia32
>> based on this. Which will reduce irq sharing dramatically.
>>
>>
>> Thanks,
>> Anthony
>>
>>
>>
>> diff --git a/bios/acpi-dsdt.dsl b/bios/acpi-dsdt.dsl
>> index 21fc76a..4b5e824 100755
>> --- a/bios/acpi-dsdt.dsl
>> +++ b/bios/acpi-dsdt.dsl
>> @@ -974,7 +974,7 @@ DefinitionBlock (
>>                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
>>                 Name(_UID, 1)
>>                 Name(_PRS, ResourceTemplate(){
>> -                    Interrupt (, Level, ActiveHigh, Shared)
>> +                    Interrupt (, Level, ActiveLow, Shared)
>
> This looks pretty much correct to me ;-). You might also want to add the 
> GSI functionality I have in my patch. The only thing we have not discussed 
> so far is, how do interrupts get routed when _PIC is not set to 1, aka the 
> "boot case"?

Hi Alexander, Anthony,

I think it would be better to avoid static PCI pin -> IOAPIC pin
assignments, if PCI link devices can be used (allowing the OS to route
IRQ's as it wishes to).

Take a look at http://www.microsoft.com/whdc/archive/acpi-mp.mspx. It
seems cleaner to use "bimodal link nodes" (using the parlance from URL
above) instead of "bimodal _PRT" as your present GSI patch is using.

My current inclination is:

- Move the PCI interrupt link device code to a method in a separate file
  (with arguments such as _UID, IRQ list, etc).
- Create separate PCI interrupt link devices for each PCI pin of each
  slot (see the example table at end of URL).
- Assign all available IRQ's covered by the single IOAPIC (0-24) in the
  interrupt list for these interrupt link devices.

I'll try Anthony's patch with Windows.


  parent reply	other threads:[~2008-06-11 16:02 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-10  7:57 [RFC]RE: [PATCH] kvm-ia64 irq assignment 1/2 kernel Xu, Anthony
2008-06-10  7:57 ` Xu, Anthony
2008-06-11 14:24 ` Alexander Graf
2008-06-11 14:24   ` Alexander Graf
2008-06-11 16:02 ` Marcelo Tosatti [this message]
2008-06-11 16:02   ` Marcelo Tosatti
2008-06-11 16:16 ` Marcelo Tosatti
2008-06-11 16:16   ` Marcelo Tosatti
2008-06-12 12:34 ` Avi Kivity
2008-06-12 12:34   ` Avi Kivity
2008-06-12 16:08 ` Xu, Anthony
2008-06-12 16:08   ` Xu, Anthony
2008-06-12 16:15 ` Xu, Anthony
2008-06-12 16:15   ` Xu, Anthony
2008-06-12 16:19 ` Xu, Anthony
2008-06-12 16:19   ` Xu, Anthony
2008-06-12 16:20 ` Xu, Anthony
2008-06-12 16:20   ` Xu, Anthony
2008-06-14 22:58 ` Marcelo Tosatti
2008-06-14 22:58   ` Marcelo Tosatti
2008-06-16  1:13 ` Xu, Anthony
2008-06-16  1:13   ` Xu, Anthony
2008-07-02  9:11 ` Jes Sorensen
2008-07-02  9:11   ` Jes Sorensen
2008-07-03  1:22 ` Xu, Anthony
2008-07-03  1:22   ` Xu, Anthony
  -- strict thread matches above, loose matches on Subject: below --
2008-06-06 15:58 Xu, Anthony
2008-06-06 15:58 ` Xu, Anthony
2008-06-06 19:58 ` Avi Kivity
2008-06-06 19:58   ` Avi Kivity
2008-06-09  8:58 ` Alexander Graf
2008-06-09  8:58   ` Alexander Graf
2008-06-09  9:16 ` Alexander Graf
2008-06-09  9:16   ` Alexander Graf
2008-06-10  6:33 ` Xu, Anthony
2008-06-10  6:33   ` Xu, Anthony
2008-06-10  7:25 ` Alexander Graf
2008-06-10  7:25   ` Alexander Graf
2008-06-12 12:24 ` Avi Kivity
2008-06-12 12:24   ` Avi Kivity
2008-06-12 12:30 ` Avi Kivity
2008-06-12 12:30   ` 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=20080611160234.GA3659@dmt.cnet \
    --to=mtosatti@redhat.com \
    --cc=kvm-ia64@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.