From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Grant Grundler <grundler@parisc-linux.org>,
Greg Kroah-Hartman <greg@kroah.com>,
Kyle McMartin <kyle@parisc-linux.org>,
linuxppc-dev@ozlabs.org, Brice Goglin <brice@myri.com>,
shaohua.li@intel.com, linux-pci@atrey.karlin.mff.cuni.cz,
"David S.Miller" <davem@davemloft.net>
Subject: Re: [RFC/PATCH 14/16] MPIC MSI backend
Date: Sat, 27 Jan 2007 09:48:47 +1100 [thread overview]
Message-ID: <1169851728.24996.194.camel@localhost.localdomain> (raw)
In-Reply-To: <m1ejphvfho.fsf@ebiederm.dsl.xmission.com>
> > I think this is the only viable aproach to support MSI migration.
> > Basing the "virq" value on bits in the addr/data pair can't migrate.
>
> Thus my initial surprise at people not liking create_irq().
The main reason _I_ don't like it is because I think I have something
better already :-) And thus I'm annoyed if something else starts
becoming a "generic" API. But I agree on the principle.
I'd be happy to help having the remapping core of arch/powerpc become
generic code though :-)
> If the irq controller the msi arrives at can redirect the irq the
> bits in the msi message could have some connection to the irq number.
> Likewise if some of those bits have nothing to do with migration.
>
> For irqs going across traces on a motherboard and into interrupt pins
> you can embed a lot of that knowledge into the irq number. For MSI
> with arbitrary programmable connections the numbers have less meaning
> and less need of meaning in that sense.
Sure, but that is totally local to the backend anyway, and thus pretty
much irrelevant to whether Michael model fits or not as it's totally
agnostic to what your backend choses to put in, or what HW vectors it
uses underneath. That's why I defined alloc() as returning a linux IRQ
number with a pre-initialized irq_desc/irq_chip. That's how the backend
does it's arch specific salad of allocating a linux irq, possibly a
vector too, and picking up the appropriate irq_chip for MSIs.
I don't see how x86 wouldn't fit nicely in that model.
> > Helping Michael make it work would be a constructive way forward.
> > I think Michael has the abstraction correct so it's NOT x86 centric
> > but still works optimally on x86.
>
> NO NO NO NO Michaels abstraction does not work on x86.
> Which is a big part of the my problem.
> Michaels abstraction does not allow me to migrate irqs on x86.
How so ? It's certainly missing a raw_msi_update() to allow you to
change the addr/data but appart from that, what is the problem ?
> setup_msi_msg only gets called when you enable the msi. Nothing
> gets called when irqbalaced changes the cpu mask, and there is no
> support that would allow that with Michael's msi ops.
irq_chip->set_affinity() which, along the rest of irq_chip callbacks, is
setup by your backend at alloc() time, and can do what it wants. There
is absolutely no point in doing it differently as the migration mecanism
is totally implementation dependant.
As I said, there is no design problem with the ops, only an small
implementation issue in that it lacks a raw_msi_udpate() to let you
udpate the addr/data from within your set_affinity() callback.
> I can't use Michaels msi_ops as they stand.
You can use the ops, you just need a few more helpers that aren't there
yet because we haven't needed them yet on powerpc.
> They also have the problem of trying to exist at two different levels
> of the interrupt hierarchy setup hierarchy simultaneously which is
> another part of the problem.
I don't understand the above.
> Micaheal's code is simple beautiful and doesn't work on x86, because
> he has not implemented what needs to be there.
We certainly haven't implemented everything that is needed for x86, that
is true, and that is why we aren't aiming at replacing x86 code just
yet, but again, I don't see what in the -model- prevents that and what
prevents x86 from fitting nicely in the model.
> That is why I have asked for an evolutionary approach and not this
> stupid drop and replace attempt.
Because while I think our model can fit x86 nicely, the current code
doesn't fit out needs at all and I strongly beleive it's the wrong
abstraction.
> Sorry for the rant I'm just a little annoyed that you hadn't hurd that
> what Micahel is doing does not work on x86.
It does not work out of the box, but you haven't yet convinced me that
there is anything fundamental in Michael's design that prevents it from
working.
Ben.
next prev parent reply other threads:[~2007-01-26 22:49 UTC|newest]
Thread overview: 143+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-25 8:34 [RFC/PATCH 0/16] Ops based MSI Implementation Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 1/16] Replace pci_msi_quirk with calls to pci_no_msi() Michael Ellerman
2007-01-25 22:33 ` patch msi-replace-pci_msi_quirk-with-calls-to-pci_no_msi.patch added to gregkh-2.6 tree gregkh
2007-01-25 8:34 ` [RFC/PATCH 3/16] Combine pci_(save|restore)_msi/msix_state Michael Ellerman
2007-01-25 22:33 ` patch msi-combine-pci__msi-msix_state.patch added to gregkh-2.6 tree gregkh
2007-01-25 8:34 ` [RFC/PATCH 2/16] Remove pci_scan_msi_device() Michael Ellerman
2007-01-25 22:33 ` patch msi-remove-pci_scan_msi_device.patch added to gregkh-2.6 tree gregkh
2007-01-25 8:34 ` [RFC/PATCH 4/16] Abstract MSI suspend Michael Ellerman
2007-01-25 22:33 ` patch msi-abstract-msi-suspend.patch added to gregkh-2.6 tree gregkh
2007-01-28 8:27 ` [RFC/PATCH 4/16] Abstract MSI suspend Eric W. Biederman
2007-01-29 7:22 ` Michael Ellerman
2007-01-29 8:45 ` Eric W. Biederman
2007-01-29 9:47 ` Michael Ellerman
2007-01-29 16:52 ` Grant Grundler
2007-01-29 16:57 ` Roland Dreier
2007-01-29 17:02 ` Roland Dreier
2007-01-29 17:25 ` Eric W. Biederman
2007-01-29 17:32 ` Roland Dreier
2007-01-29 22:03 ` Grant Grundler
2007-01-29 17:20 ` Eric W. Biederman
2007-02-01 4:24 ` Greg KH
2007-01-25 8:34 ` [RFC/PATCH 5/16] Ops based MSI implementation Michael Ellerman
2007-01-25 21:52 ` Greg KH
2007-01-25 22:05 ` Roland Dreier
2007-01-25 22:10 ` Greg KH
2007-01-26 1:02 ` Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 6/16] Add bare metal MSI enable & disable routines Michael Ellerman
2007-01-26 5:35 ` Eric W. Biederman
2007-01-25 8:34 ` [RFC/PATCH 7/16] Rip out the existing powerpc msi stubs Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 9/16] RTAS MSI implementation Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 8/16] Enable MSI on Powerpc Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 10/16] Add a pci_irq_fixup for MSI via RTAS Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 12/16] Tell firmware we support MSI Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 11/16] Activate MSI via RTAS on pseries Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 13/16] MPIC MSI allocator Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 15/16] Enable MSI mappings for MPIC Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 14/16] MPIC MSI backend Michael Ellerman
2007-01-26 6:43 ` Grant Grundler
2007-01-26 7:02 ` Eric W. Biederman
2007-01-26 8:47 ` Segher Boessenkool
2007-01-26 16:32 ` Eric W. Biederman
2007-01-26 17:19 ` Grant Grundler
2007-01-26 17:56 ` Eric W. Biederman
2007-01-26 22:48 ` Benjamin Herrenschmidt [this message]
2007-01-27 7:01 ` Michael Ellerman
2007-01-26 22:40 ` Benjamin Herrenschmidt
2007-01-27 2:11 ` David Miller
2007-01-26 22:08 ` Benjamin Herrenschmidt
2007-01-27 6:54 ` Michael Ellerman
2007-01-26 20:50 ` Benjamin Herrenschmidt
2007-01-26 22:46 ` Paul Mackerras
2007-01-27 2:46 ` Eric W. Biederman
2007-01-27 3:02 ` David Miller
2007-01-27 4:28 ` Eric W. Biederman
2007-01-27 18:30 ` Grant Grundler
2007-01-27 20:02 ` Benjamin Herrenschmidt
2007-01-26 20:41 ` Benjamin Herrenschmidt
2007-01-26 9:11 ` Segher Boessenkool
2007-01-27 6:33 ` Michael Ellerman
2007-01-25 8:34 ` [RFC/PATCH 16/16] Activate MSI for the MPIC backend on U3 Michael Ellerman
2007-01-25 21:53 ` [RFC/PATCH 0/16] Ops based MSI Implementation Greg KH
2007-01-25 21:55 ` David Miller
2007-01-26 1:05 ` Michael Ellerman
2007-01-26 1:03 ` Michael Ellerman
2007-01-26 6:18 ` Eric W. Biederman
2007-01-26 6:56 ` Grant Grundler
2007-01-26 7:15 ` Eric W. Biederman
2007-01-26 7:48 ` Grant Grundler
2007-01-26 15:26 ` Eric W. Biederman
2007-01-26 21:58 ` Benjamin Herrenschmidt
2007-01-26 8:57 ` Segher Boessenkool
2007-01-26 17:27 ` Grant Grundler
2007-01-26 20:57 ` Benjamin Herrenschmidt
2007-01-26 21:24 ` Benjamin Herrenschmidt
2007-01-27 5:41 ` Michael Ellerman
2007-01-28 6:16 ` Eric W. Biederman
2007-01-28 8:12 ` Michael Ellerman
2007-01-28 8:36 ` Eric W. Biederman
2007-01-28 20:14 ` Benjamin Herrenschmidt
2007-01-28 20:53 ` Eric W. Biederman
2007-01-28 21:17 ` Benjamin Herrenschmidt
2007-01-28 22:36 ` Eric W. Biederman
2007-01-28 23:17 ` Benjamin Herrenschmidt
2007-01-28 23:38 ` Eric W. Biederman
2007-01-28 23:51 ` David Miller
2007-01-29 0:58 ` Benjamin Herrenschmidt
2007-01-29 1:13 ` David Miller
2007-01-29 3:17 ` Benjamin Herrenschmidt
2007-01-29 4:19 ` David Miller
2007-01-29 4:44 ` Benjamin Herrenschmidt
2007-01-29 5:46 ` Eric W. Biederman
2007-01-29 6:08 ` Benjamin Herrenschmidt
2007-01-31 6:52 ` David Miller
2007-01-31 7:40 ` Eric W. Biederman
2007-02-01 0:55 ` David Miller
2007-01-29 0:26 ` Benjamin Herrenschmidt
2007-01-29 0:59 ` Michael Ellerman
2007-01-28 23:31 ` David Miller
2007-01-28 23:59 ` Benjamin Herrenschmidt
2007-01-28 23:26 ` David Miller
2007-01-28 23:25 ` David Miller
2007-01-27 4:59 ` Michael Ellerman
2007-01-28 19:40 ` [PATCH 0/6] MSI portability cleanups Eric W. Biederman
2007-01-28 19:42 ` [PATCH 1/6] msi: Kill msi_lookup_irq Eric W. Biederman
2007-01-28 19:44 ` [PATCH 2/6] msi: Remove msi_lock Eric W. Biederman
2007-01-28 19:45 ` [PATCH 3/6] msi: Fix msi_remove_pci_irq_vectors Eric W. Biederman
2007-01-28 19:47 ` [PATCH 4/6] msi: Remove attach_msi_entry Eric W. Biederman
2007-01-28 19:52 ` [PATCH 5/6] msi: Kill the msi_desc array Eric W. Biederman
2007-01-28 19:56 ` [PATCH 6/6] msi: Make MSI useable more architectures Eric W. Biederman
2007-02-01 6:08 ` patch msi-make-msi-useable-more-architectures.patch added to gregkh-2.6 tree gregkh
2007-02-01 6:07 ` patch msi-kill-the-msi_desc-array.patch " gregkh
2007-02-01 6:08 ` patch msi-remove-attach_msi_entry.patch " gregkh
2007-02-01 6:07 ` patch msi-fix-msi_remove_pci_irq_vectors.patch " gregkh
2007-02-01 6:08 ` patch msi-remove-msi_lock.patch " gregkh
2007-01-28 22:01 ` [PATCH 1/6] msi: Kill msi_lookup_irq Paul Mackerras
2007-01-28 22:18 ` Eric W. Biederman
2007-02-01 6:07 ` patch msi-kill-msi_lookup_irq.patch added to gregkh-2.6 tree gregkh
2007-01-28 20:23 ` [PATCH 0/6] MSI portability cleanups Benjamin Herrenschmidt
2007-01-28 20:47 ` Jeff Garzik
2007-01-28 21:20 ` Eric W. Biederman
2007-01-28 21:26 ` Ingo Molnar
2007-01-28 22:09 ` Benjamin Herrenschmidt
2007-01-28 23:26 ` Eric W. Biederman
2007-01-28 23:37 ` David Miller
2007-01-29 5:18 ` Eric W. Biederman
2007-01-29 5:25 ` David Miller
2007-01-29 5:58 ` Eric W. Biederman
2007-01-29 6:05 ` Benjamin Herrenschmidt
2007-01-29 8:28 ` Eric W. Biederman
2007-01-29 9:03 ` Eric W. Biederman
2007-01-29 10:11 ` Michael Ellerman
2007-01-29 20:32 ` Benjamin Herrenschmidt
2007-01-29 23:29 ` Paul Mackerras
2007-01-29 23:40 ` Benjamin Herrenschmidt
2007-01-29 20:22 ` Benjamin Herrenschmidt
2007-01-29 23:05 ` Paul Mackerras
2007-01-30 19:32 ` Segher Boessenkool
2007-01-29 1:33 ` Benjamin Herrenschmidt
2007-02-01 4:29 ` Greg KH
2007-01-28 23:44 ` David Miller
2007-01-28 22:11 ` Eric W. Biederman
2007-01-28 23:42 ` David Miller
2007-01-28 21:34 ` 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=1169851728.24996.194.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=brice@myri.com \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=greg@kroah.com \
--cc=grundler@parisc-linux.org \
--cc=kyle@parisc-linux.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=linuxppc-dev@ozlabs.org \
--cc=shaohua.li@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).