Thread (1 message) 1 message, 1 author, 2012-01-18

Re: [RFC 06/14] irq_domain/powerpc: Eliminate virq_is_host()

From: Grant Likely <hidden>
Date: 2012-01-18 00:39:22
Also in: lkml

On Thu, Jan 12, 2012 at 3:17 AM, Milton Miller [off-list ref] wrote:
On Wed Jan 11 2012 about 15:24:34 EST, Grant Likely wrote:
quoted
There is only one user, and it is trivial to open-code.
I added virq_is_host because I had planned to change how we find the
host (domain) from a virq.

Instead of storing a pointer in irq_desc (a pointer for every irq),
I planned to use a NR_IRQ(+extra) bitmap per domain. =A0This should be
a win storage-wise when the number of irq controllers is less than the
number of bits in a long.

This would also convert scanning for a reverse map from walking every
irqdesc to walking find_next_bit over the irqs assigned to the host.

Thus my rule was "code outside kernel/irq must not touch domain";
both the contents and how it was associated were abstracted.

Other planned changes included splitting the reverse lookup into
domain dependent pieces, creating the ida for sparse map at domain
creation time (init irq is after radix_tree_init as its used by the
current irq code) so we never fall back to linear search. =A0Linear
populated the reverse map as the irq was assigned, and changed to
a seperate subtype if it mapped an irq above the map size.

I thought some of the domains would be split into seperate files
selected by Kconfig, at least the sparse tree.

There was also a nomap varient to handle iseries (and one of the cell
varients) where the interrupt number to use for an event is controlled
by the guest, that led to the discussion with tlgx about how to
disallow the extra irqs above the limit set by the arch callback.

Actually making virq-is-domain a domain callback could eliminate the
need for the bitmap on legacy (range limited) domains.


I have my work in progress patches from 2.6.39 if you would like to
see them. =A0I was trying to clean up powerpc before pushing it over,
and didn't get all the concepts written. =A0So I just sent Ben what
was ready at the time and haven't had time to get back to it.
Go ahead and send me your patches.  I'll see what I can add into my series.
Overall, I think most of the other concepts are ok, although I would
have chosen to remove NO_IRQ before moving the code, and probably
the rename from host to domain.
Haha.  Yeah, I debated reordering those a bit, but it would have
created a bunch of rebase work for little benefit.  Unless someone
really complains loudly, I'm going to leave it in the order as is.
=A0I haven't studied the patches in
detail since your tree is based on linux-next and my drive doesn't
have space for that. =A0It took me a while to realize the code removed
from the header file in 4/14 (powerpc use commmon host) was actually
moved to irq-domain in 1/14 (a comment to that effect would be nice).
Okay, I'll add a comment to that effect.  If I rebase to Linus' tree
after 3.3-rc1 is released, can you help me test?

g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help