Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On 01/27/2012 10:36 PM, Grant Likely : > The 'hint' used to try and line up irq numbers with hw irq numbers is > rather a hack and not very useful. Now that /proc/interrupts also outputs > the hwirq number, it is even less useful to keep around the 'hint' heuristic. > > This patch removes it. Grant, While trying your patch series in conjunction with Rob one, I do not find this patch in your irqdomain/next branch (and a couple of others). Can you tell me if this v3 series is available as a git tree? Thanks, best regards, -- Nicolas Ferre ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On 02/07/2012 07:07 PM, Nicolas Ferre : > On 01/27/2012 10:36 PM, Grant Likely : >> The 'hint' used to try and line up irq numbers with hw irq numbers is >> rather a hack and not very useful. Now that /proc/interrupts also outputs >> the hwirq number, it is even less useful to keep around the 'hint' heuristic. >> >> This patch removes it. > > Grant, > > While trying your patch series in conjunction with Rob one, I do not > find this patch in your irqdomain/next branch (and a couple of others). > Can you tell me if this v3 series is available as a git tree? I am still interested by patch 24-25 of this series but still cannot find them in your irqdomain/next branch: Are they also expected to join the 3.4 merge window material? Bye, -- Nicolas Ferre ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On Wed, Feb 15, 2012 at 04:04:28PM +0100, Nicolas Ferre wrote: > On 02/07/2012 07:07 PM, Nicolas Ferre : > > On 01/27/2012 10:36 PM, Grant Likely : > >> The 'hint' used to try and line up irq numbers with hw irq numbers is > >> rather a hack and not very useful. Now that /proc/interrupts also outputs > >> the hwirq number, it is even less useful to keep around the 'hint' > >> heuristic. > >> > >> This patch removes it. > > > > Grant, > > > > While trying your patch series in conjunction with Rob one, I do not > > find this patch in your irqdomain/next branch (and a couple of others). > > Can you tell me if this v3 series is available as a git tree? > > I am still interested by patch 24-25 of this series but still cannot > find them in your irqdomain/next branch: > Are they also expected to join the 3.4 merge window material? I've held off on putting them in irqdomain/next because they are a bit more risky than the other patches, and I want an explicit ack from Ben for patches 24 & 25. However, that shouldn't really cause any issues since the changes in 24 & 25 don't impact the irq_domain functionality or API. They are just optimizations. Also on 25, I'm not yet convinced that breaking out the revmap functions into ops is the right thing to do. It actually makes the .text size quite a bit larger. I may very well rewrite it. g. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On Wed, Feb 15, 2012 at 01:21:45PM -0700, Grant Likely wrote: > On Wed, Feb 15, 2012 at 04:04:28PM +0100, Nicolas Ferre wrote: > > On 02/07/2012 07:07 PM, Nicolas Ferre : > > > On 01/27/2012 10:36 PM, Grant Likely : > > >> The 'hint' used to try and line up irq numbers with hw irq numbers is > > >> rather a hack and not very useful. Now that /proc/interrupts also > > >> outputs > > >> the hwirq number, it is even less useful to keep around the 'hint' > > >> heuristic. > > >> > > >> This patch removes it. > > > > > > Grant, > > > > > > While trying your patch series in conjunction with Rob one, I do not > > > find this patch in your irqdomain/next branch (and a couple of others). > > > Can you tell me if this v3 series is available as a git tree? > > > > I am still interested by patch 24-25 of this series but still cannot > > find them in your irqdomain/next branch: > > Are they also expected to join the 3.4 merge window material? > > I've held off on putting them in irqdomain/next because they are a bit more > risky than the other patches, and I want an explicit ack from Ben for patches > 24 & 25. However, that shouldn't really cause any issues since the changes > in 24 & 25 don't impact the irq_domain functionality or API. They are just > optimizations. > I'm seeing that patch 24 does impact on irq_domain functionality a little bit. On next tree which has no this patch yet, irq_create_mapping can reasonably create virq in range 1..15, while irq_find_mapping will only try to find the virq from 16 (NUM_ISA_INTERRUPTS). This will result in that any hwirq that is < 16 gets multiple entries in the mapping table with different virq numbers mapped to the same one hwirq. That's why I have to apply patch #24 (with one line change below) on top of next tree to get my imx irqdomain series work properly. @@ -371,7 +371,7 @@ unsigned int irq_create_mapping(struct irq_domain *domain, return irq_domain_legacy_revmap(domain, hwirq); /* Allocate a virtual interrupt number */ - virq = irq_alloc_desc(0); + virq = irq_alloc_desc_from(1, 0); if (!virq) { pr_debug("irq: -> virq allocation failed\n"); return 0; I need this line of change, because the first call on irq_alloc_desc will always return 0 to virq and in turn irq_create_mapping fails. On imx, that's the mapping for timer irq. Hence, the system will hang there due to irq mapping failure. -- Regards, Shawn ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On Wed, Feb 15, 2012 at 01:50:02PM -0800, Shawn Guo wrote: > On Wed, Feb 15, 2012 at 01:21:45PM -0700, Grant Likely wrote: > > On Wed, Feb 15, 2012 at 04:04:28PM +0100, Nicolas Ferre wrote: > > > On 02/07/2012 07:07 PM, Nicolas Ferre : > > > > On 01/27/2012 10:36 PM, Grant Likely : > > > >> The 'hint' used to try and line up irq numbers with hw irq numbers is > > > >> rather a hack and not very useful. Now that /proc/interrupts also > > > >> outputs > > > >> the hwirq number, it is even less useful to keep around the 'hint' > > > >> heuristic. > > > >> > > > >> This patch removes it. > > > > > > > > Grant, > > > > > > > > While trying your patch series in conjunction with Rob one, I do not > > > > find this patch in your irqdomain/next branch (and a couple of others). > > > > Can you tell me if this v3 series is available as a git tree? > > > > > > I am still interested by patch 24-25 of this series but still cannot > > > find them in your irqdomain/next branch: > > > Are they also expected to join the 3.4 merge window material? > > > > I've held off on putting them in irqdomain/next because they are a bit more > > risky than the other patches, and I want an explicit ack from Ben for > > patches > > 24 & 25. However, that shouldn't really cause any issues since the changes > > in 24 & 25 don't impact the irq_domain functionality or API. They are just > > optimizations. > > > I'm seeing that patch 24 does impact on irq_domain functionality > a little bit. On next tree which has no this patch yet, > irq_create_mapping can reasonably create virq in range 1..15, while > irq_find_mapping will only try to find the virq from 16 > (NUM_ISA_INTERRUPTS). This will result in that any hwirq that is < 16 > gets multiple entries in the mapping table with different virq numbers > mapped to the same one hwirq. That's a bug then. The implementation should work without patch 24. Does this patch fix it? --- diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 2c1d6f8..2d3dfff 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c @@ -516,8 +516,8 @@ unsigned int irq_find_mapping(struct irq_domain *domain, return irq_domain_legacy_revmap(domain, hwirq); /* Slow path does a linear search of the map */ - if (hint < NUM_ISA_INTERRUPTS) - hint = NUM_ISA_INTERRUPTS; + if (hint == 0) + hint = 1; i = hint; do { struct irq_data *data = irq_get_irq_data(i); @@ -525,7 +525,7 @@ unsigned int irq_find_mapping(struct irq_domain *domain, return i; i++; if (i >= irq_virq_count) - i = NUM_ISA_INTERRUPTS; + i = 1 } while(i != hint); return 0; } ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v3 24/25] irq_domain: remove "hint" when allocating irq numbers
On Wed, Feb 15, 2012 at 10:32:43PM -0700, Grant Likely wrote: ... > That's a bug then. The implementation should work without patch 24. Does > this patch fix it? > Yes, it fixes the problem for me. Regards, Shawn > --- > > diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c > index 2c1d6f8..2d3dfff 100644 > --- a/kernel/irq/irqdomain.c > +++ b/kernel/irq/irqdomain.c > @@ -516,8 +516,8 @@ unsigned int irq_find_mapping(struct irq_domain *domain, > return irq_domain_legacy_revmap(domain, hwirq); > > /* Slow path does a linear search of the map */ > - if (hint < NUM_ISA_INTERRUPTS) > - hint = NUM_ISA_INTERRUPTS; > + if (hint == 0) > + hint = 1; > i = hint; > do { > struct irq_data *data = irq_get_irq_data(i); > @@ -525,7 +525,7 @@ unsigned int irq_find_mapping(struct irq_domain *domain, > return i; > i++; > if (i >= irq_virq_count) > - i = NUM_ISA_INTERRUPTS; > + i = 1 > } while(i != hint); > return 0; > } > ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev