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

From: Milton Miller
Date: Thu Jan 12 2012 - 05:18:08 EST


On Wed Jan 11 2012 about 15:24:34 EST, Grant Likely wrote:
> 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. This 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. Linear
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. I was trying to clean up powerpc before pushing it over,
and didn't get all the concepts written. So I just sent Ben what
was ready at the time and haven't had time to get back to it.

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. I haven't studied the patches in
detail since your tree is based on linux-next and my drive doesn't
have space for that. It 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).


milton
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/