From: ebiederm@xmission.com (Eric W. Biederman)
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-pci@atrey.karlin.mff.cuni.cz, discuss@x86-64.org,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Andi Kleen <ak@suse.de>,
Natalie Protasevich <Natalie.Protasevich@UNISYS.com>,
Len Brown <len.brown@intel.com>,
Kimball Murray <kimball.murray@gmail.com>,
Brice Goglin <brice@myri.com>,
Greg Lindahl <greg.lindahl@qlogic.com>,
Dave Olson <olson@unixfolk.com>, Jeff Garzik <jeff@garzik.org>,
Greg KH <gregkh@suse.de>, Grant Grundler <iod00d@hp.com>,
"bibo,mao" <bibo.mao@intel.com>,
Rajesh Shah <rajesh.shah@intel.com>, Mark Maule <maule@sgi.com>,
Jesper Juhl <jesper.juhl@gmail.com>,
Shaohua Li <shaohua.li@intel.com>,
Matthew Wilcox <matthew@wil.cx>,
"Michael S. Tsirkin" <mst@mellanox.co.il>,
Ashok Raj <ashok.raj@intel.com>,
Randy Dunlap <rdunlap@xenotime.net>
Subject: Re: [PATCH 9/25] irq: Add a dynamic irq creation API
Date: Tue, 20 Jun 2006 19:01:52 -0600 [thread overview]
Message-ID: <m1veqvb9tr.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <1150847764.1901.64.camel@localhost.localdomain> (Benjamin Herrenschmidt's message of "Wed, 21 Jun 2006 09:56:04 +1000")
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> On Tue, 2006-06-20 at 16:28 -0600, Eric W. Biederman wrote:
>> With the msi support comes a new concept in irq handling,
>> irqs that are created dynamically at run time.
>>
>> Currently the msi code allocates irqs backwards. First it
>> allocates a platform dependent routing value for an
>> interrupt the ``vector'' and then it figures out from the
>> vector which irq you are on.
>
> You may want to look at the work I'm currently doing for powerpc where
> we need a fully dynamic linux irq number allocation, completely separate
> spaces for hw numbers (vectors) and linux irq numbers for arbitrary PICs
> (and more than one in a given system) etc...
>
> I'll post a patch that shows the stuff I'm adding later today so you can
> have a look. There is some overlap with your dynamic irq stuff.
>
> I haven't completely ported all of powerpc to my new core yet which is
> why I haven't posted patches yet, but I'll have something out today.
Sure. I know by the end of my patchset I have separated out hw numbers
from the linux irq numbers, so this should work for powerpc.
I would love to hear feedback on it though.
So to be very clear what we mean, because I have gotten bitten in the
past. I understand the linux irq number to be:
a) An index in the irq_desc array.
b) An enumeration of the hardware interrupts sources.
c) Human visible so ideally it is neither arbitrary, nor
very dynamic if the hardware is not.
Then there is the destination cookie (vector on x86) that is
available to the cpu when the interrupt is delivered.
I think we are on a similar track but I'm not at all certain I like
the idea of a fully dynamic linux irq number except in cases like MSI
where your sources are dynamic. But I may be making the wrong
assumptions about what you are doing.
I think implementations where we expose the hardware cookie instead
of an enumeration of irq sources like ia64 does, impedes debugging
because the irq number will be different between boots, or loads
of the kernel module. At the same time as long as we don't assume
the irq number is the hardware cookie I don't see any maintenance
problems with an implementation like that.
What I do know is that on x86_64 the multiple levels of translation
from the firmwares notion of the irq number to linux different
notion of the irq number made the code overly complex and fragile.
Which is one of the things I address in this patchset.
But I would be happy to have a look, and I very much
hope we can our implementations working together.
Eric
next prev parent reply other threads:[~2006-06-21 1:03 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-20 22:24 [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Eric W. Biederman
2006-06-20 22:28 ` [PATCH 1/25] irq: Convert the move_irq flag from a 32bit word to a single bit Eric W. Biederman
2006-06-20 22:28 ` [PATCH 2/25] irq: Add moved_masked_irq Eric W. Biederman
2006-06-20 22:28 ` [PATCH 3/25] x86_64 irq: Reenable migrating irqs to other cpus Eric W. Biederman
2006-06-20 22:28 ` [PATCH 4/25] msi: Simplify msi enable and disable Eric W. Biederman
2006-06-20 22:28 ` [PATCH 5/25] msi: Make the msi boolean tests return either 0 or 1 Eric W. Biederman
2006-06-20 22:28 ` [PATCH 6/25] msi: Implement helper functions read_msi_msg and write_msi_msg Eric W. Biederman
2006-06-20 22:28 ` [PATCH 7/25] msi: Refactor the msi_ops Eric W. Biederman
2006-06-20 22:28 ` [PATCH 8/25] msi: Simplify the msi irq limit policy Eric W. Biederman
2006-06-20 22:28 ` [PATCH 9/25] irq: Add a dynamic irq creation API Eric W. Biederman
2006-06-20 22:28 ` [PATCH 10/25] ia64 irq: Dynamic irq support Eric W. Biederman
2006-06-20 22:28 ` [PATCH 11/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 12/25] x86_64 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 13/25] msi: Make the msi code irq based and not vector based Eric W. Biederman
2006-06-20 22:28 ` [PATCH 14/25] x86_64 irq: Move msi message composition into io_apic.c Eric W. Biederman
2006-06-20 22:28 ` [PATCH 15/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 16/25] msi: Only build msi-apic.c on ia64 Eric W. Biederman
2006-06-20 22:28 ` [PATCH 17/25] x86_64 irq: Remove the msi assumption that irq == vector Eric W. Biederman
2006-06-20 22:28 ` [PATCH 18/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 19/25] irq: Remove msi hacks Eric W. Biederman
2006-06-20 22:28 ` [PATCH 20/25] irq: Generalize the check for HARDIRQ_BITS Eric W. Biederman
2006-06-20 22:28 ` [PATCH 21/25] x86_64 irq: Make the external irq handlers report their vector, not the irq number Eric W. Biederman
2006-06-20 22:28 ` [PATCH 22/25] x86_64 irq: make vector_irq per cpu Eric W. Biederman
2006-06-20 22:28 ` [PATCH 23/25] x86_64 irq: Kill gsi_irq_sharing Eric W. Biederman
2006-06-20 22:28 ` [PATCH 24/25] x86_64 irq: Kill irq compression Eric W. Biederman
2006-06-20 22:28 ` [PATCH 25/25] irq: Document what an IRQ is Eric W. Biederman
2006-06-21 1:50 ` [PATCH 11/25] i386 irq: Dynamic irq support Rajesh Shah
2006-06-21 2:21 ` Eric W. Biederman
2006-06-21 2:27 ` Rajesh Shah
2006-06-21 14:07 ` Eric W. Biederman
2006-06-20 23:56 ` [PATCH 9/25] irq: Add a dynamic irq creation API Benjamin Herrenschmidt
2006-06-21 1:01 ` Eric W. Biederman [this message]
2006-06-21 1:33 ` Benjamin Herrenschmidt
2006-06-21 1:41 ` Jeff Garzik
2006-06-21 1:36 ` Matthew Wilcox
2006-06-21 1:28 ` [PATCH 8/25] msi: Simplify the msi irq limit policy Rajesh Shah
2006-06-21 2:46 ` Roland Dreier
2006-06-21 3:48 ` Eric W. Biederman
2006-06-21 1:18 ` [PATCH 7/25] msi: Refactor the msi_ops Rajesh Shah
2006-06-21 1:04 ` [PATCH 6/25] msi: Implement helper functions read_msi_msg and write_msi_msg Rajesh Shah
2006-06-21 1:43 ` Eric W. Biederman
2006-06-20 22:45 ` [PATCH 5/25] msi: Make the msi boolean tests return either 0 or 1 Jeff Garzik
2006-06-21 0:44 ` [PATCH 4/25] msi: Simplify msi enable and disable Rajesh Shah
2006-06-21 1:19 ` Eric W. Biederman
2006-06-21 0:30 ` [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Rajesh Shah
2006-06-21 1:07 ` Eric W. Biederman
2006-06-21 14:10 ` [PATCH] Decouple IRQ issues (fix i386 compile issues) Eric W. Biederman
2006-06-21 10:24 ` [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Ingo Molnar
2006-06-21 16:25 ` Greg KH
2006-06-22 3:55 ` Eric W. Biederman
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=m1veqvb9tr.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=Natalie.Protasevich@UNISYS.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=ashok.raj@intel.com \
--cc=benh@kernel.crashing.org \
--cc=bibo.mao@intel.com \
--cc=brice@myri.com \
--cc=discuss@x86-64.org \
--cc=greg.lindahl@qlogic.com \
--cc=gregkh@suse.de \
--cc=iod00d@hp.com \
--cc=jeff@garzik.org \
--cc=jesper.juhl@gmail.com \
--cc=kimball.murray@gmail.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=matthew@wil.cx \
--cc=maule@sgi.com \
--cc=mingo@elte.hu \
--cc=mst@mellanox.co.il \
--cc=olson@unixfolk.com \
--cc=rajesh.shah@intel.com \
--cc=rdunlap@xenotime.net \
--cc=shaohua.li@intel.com \
--cc=tglx@linutronix.de \
/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