public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	linux-kernel@vger.kernel.org,
	Xen-devel <xen-devel@lists.xensource.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Ian Campbell <ian.campbell@citrix.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>, Yinghai Lu <yinghai@kernel.org>
Subject: Re: [PATCH 30 of 38] xen: implement io_apic_ops
Date: Thu, 20 Nov 2008 17:16:23 -0800	[thread overview]
Message-ID: <49260BE7.1080909@goop.org> (raw)
In-Reply-To: <m1prkpj3nl.fsf@frodo.ebiederm.org>

Eric W. Biederman wrote:
> Jeremy Fitzhardinge <jeremy@goop.org> writes:
>
>
>   
>> The changes are spread over a number of patches, but the meat of it is in "xen:
>> route hardware irqs via Xen".  It turns out fairly simply, but perhaps its
>> because I've made a number of simplifying assumptions: interrupts are always
>> IOAPIC based, only using ACPI for routing, no MSI support yet.
>>
>> But it seems to me that the only time you really care that the irq isn't a gsi
>> is when programming a vector into the ioapics - you need to do a irq ->
>> ioapic/pin mapping anyway, so adding a irq -> gsi -> ioapic/pin map isn't all
>> that complex.
>>     
>
> It is hideous.  Been there and ripped out hundreds of lines of useless and problem
> causing code to get here.  It is especially bad when you do not identity map the first
> 16 gsi to linux irqs (the legacy isa irqs).
>   

Yes.  I made that concession too, and just reserved them as identity 
mapped legacy irqs.

> Yep.  And but the numbers we you should be beyond the range of the gsi's so there
> is no conflict.  Think of it an extension of how we identitly make the low 16 linux
> irqs.
>   

Yes, I suppose we can statically partition the irq space.  In fact the 
original 2.6.18-xen dom0 kernel does precisely that, but runs into 
limitations because of the compile-time limit on NR_IRQS in that 
kernel.  If we move to a purely dynamically allocated irq space, then 
having a sparse allocation if irqs becomes reasonable again, for msis 
and vectorless Xen interrupts.

>>  In a sense you can think
>> of the other Xen interrupt sources as being a bit like MSI, at least in as much
>> as they're not sourced from a GSI (but they go further and are not sourced from
>> an IOAPIC at all).
>>     
>
> MSI isn't sourced from an IOAPIC either.
>   

Right.

> The difference is that the xen sources are not delivered using vectors.  The cpu
> vector numbers we do hide and treat as an implementation detail.  And I am totally
> happy not going through the vector allocation path.
>   

Right.  And in the physical irq event channel case, the vector space is 
managed by Xen, so we need to use Xen to allocate the vector, then 
program that into the appropriate place in the ioapic.

> My gut feel says that you just want to use a different set of irq operations when
> doing Xen native and working with hardware interrupts.    I haven't seen the code so
> I don't know how you interact there.  Except in dom0 this is not a consideration so
> I don't how it is handled.
>   

Yeah.  In the domU case, where there's no physical interrupts, the Xen 
code completely avoids the ioapic/vector stuff, and directly converts an 
event channel into an irq.  Indeed, physical irq delivery is handled the 
same way; its just that the setup requires touching the ioapics to 
program the appropriate vector and bind it to an event channel.

    J

  reply	other threads:[~2008-11-21  1:16 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-13 19:09 [PATCH 00 of 38] xen: add more Xen dom0 support Jeremy Fitzhardinge
2008-11-13 19:09 ` [PATCH 01 of 38] xen: various whitespace and other formatting cleanups Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 02 of 38] x86: remove unused iommu_nr_pages Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 03 of 38] swiotlb: allow architectures to override swiotlb pool allocation Jeremy Fitzhardinge
2008-11-14  9:01   ` [Xen-devel] [PATCH 03 of 38] swiotlb: allow architectures tooverride " Jan Beulich
2008-11-14 19:33     ` Jeremy Fitzhardinge
2008-11-17  8:04       ` Chris Lalancette
2008-11-17  8:44         ` Keir Fraser
2008-11-17  9:15       ` [Xen-devel] [PATCH 03 of 38] swiotlb: allow architectures tooverrideswiotlb " Jan Beulich
2008-11-13 19:10 ` [PATCH 04 of 38] swiotlb: move some definitions to header Jeremy Fitzhardinge
2008-11-17  3:48   ` FUJITA Tomonori
2008-11-17 11:52     ` Ian Campbell
2008-11-13 19:10 ` [PATCH 05 of 38] swiotlb: allow architectures to override virt<->bus<->virt conversions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 06 of 38] xen: clean up asm-x86/xen/hypervisor.h Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 07 of 38] x86: add io_apic_ops Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 08 of 38] x86: make apic_* operations inline functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 09 of 38] x86: make sure we really have an hpet mapping before using it Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 10 of 38] x86: add handle_irq() to allow interrupt injection Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 11 of 38] x86: define no-op exit_idle() on 32-bit Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 12 of 38] xen/dom0: handle acpi lapic parsing in Xen dom0 Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 13 of 38] x86: unstatic mp_find_ioapic so it can be used elsewhere Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 14 of 38] x86: add mp_find_ioapic_pin Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 15 of 38] x86: unstatic ioapic entry funcs Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 16 of 38] x86: include linux/init.h in asm/numa_64.h Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 17 of 38] x86: add swiotlb allocation functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 18 of 38] x86: unify pci iommu setup and allow swiotlb to compile for 32 bit Jeremy Fitzhardinge
2008-11-17  3:48   ` FUJITA Tomonori
2008-11-17 16:16     ` Ian Campbell
2008-11-19  2:19       ` FUJITA Tomonori
2008-11-19 13:48         ` Ian Campbell
2008-11-21 14:21         ` Ian Campbell
2008-11-22  1:49           ` FUJITA Tomonori
2008-11-24 11:41             ` Ian Campbell
2008-11-26  2:53               ` FUJITA Tomonori
2008-11-26  9:36                 ` Ian Campbell
2008-11-27  3:43                   ` FUJITA Tomonori
2008-11-27 17:14                     ` Ian Campbell
2008-11-28  6:28                       ` FUJITA Tomonori
2008-11-13 19:10 ` [PATCH 19 of 38] x86: add arch specific version of the swiotlb virt<->bus<->virt functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 20 of 38] xen dom0: Make hvc_xen console work for dom0 Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 21 of 38] xen dom0: Initialize xenbus " Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 22 of 38] xen dom0: Set up basic IO permissions " Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 23 of 38] xen-dom0: only selectively disable cpu features Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 24 of 38] xen dom0: Add support for the platform_ops hypercall Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 25 of 38] xen mtrr: Add mtrr_ops support for Xen mtrr Jeremy Fitzhardinge
2008-11-13 20:28   ` Mark McLoughlin
2008-11-14  0:35     ` Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 26 of 38] xen: forcibly disable PAT support Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 27 of 38] xen/dom0: use _PAGE_IOMAP in ioremap to do machine mappings Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 28 of 38] paravirt/xen: add pvop for page_is_ram Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 29 of 38] xen: create dummy ioapic mapping Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 30 of 38] xen: implement io_apic_ops Jeremy Fitzhardinge
2008-11-20  8:33   ` Simon Horman
2008-11-20 17:07     ` Jeremy Fitzhardinge
2008-11-20  9:35   ` Ingo Molnar
2008-11-20 17:00     ` Jeremy Fitzhardinge
2008-11-20 19:22       ` Ingo Molnar
2008-11-20 19:29         ` Yinghai Lu
2008-11-20 19:39           ` Jeremy Fitzhardinge
2008-11-20 19:40             ` Yinghai Lu
2008-11-20 19:38         ` Jeremy Fitzhardinge
2008-11-21  1:30         ` H. Peter Anvin
2008-11-20 20:22       ` Eric W. Biederman
2008-11-20 21:32         ` Jeremy Fitzhardinge
2008-11-21  0:58           ` Eric W. Biederman
2008-11-21  1:16             ` Jeremy Fitzhardinge [this message]
2008-11-21  4:27               ` Eric W. Biederman
2008-11-24 19:18                 ` Jeremy Fitzhardinge
2008-11-24 22:02                   ` Eric W. Biederman
2008-11-13 19:10 ` [PATCH 31 of 38] xen: set irq_chip disable Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 32 of 38] xen: use our own eventchannel->irq path Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 33 of 38] xen: pack all irq-related info together Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 34 of 38] xen: remove irq bindcount Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 35 of 38] xen: implement pirq type event channels Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 36 of 38] xen: route hardware irqs via Xen Jeremy Fitzhardinge
2008-11-20  9:31   ` Ingo Molnar
2008-11-20 17:06     ` Jeremy Fitzhardinge
2008-11-21  7:17   ` Simon Horman
2008-11-13 19:10 ` [PATCH 37 of 38] xen: bind pirq to vector and event channel Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 38 of 38] xen: make sure that softirqs get handled at the end of event processing Jeremy Fitzhardinge

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=49260BE7.1080909@goop.org \
    --to=jeremy@goop.org \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=ian.campbell@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=yinghai@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox