Re: [patch 3/5] MIPS: Octeon: Simplify irq_cpu_on/offline irq chip functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/27/2011 02:29 PM, Thomas Gleixner wrote:
On Sun, 27 Mar 2011, David Daney wrote:

On 03/27/2011 09:22 AM, Thomas Gleixner wrote:
Make use of the IRQCHIP_ONOFFLINE_ENABLED flag and remove the
wrappers. Use irqd_irq_disabled() instead of desc->status, which will
go away.

I rewrote my patch set and was testing it.  Interesting that I came up with a
function with almost the same name and purpose.

However my function told us if the irq was masked *or* disabled.  The idea
being a function that returns true if the irq could fire.  We cannot be
enabling the interrupt in the controller if it is masked.

For example I need to test this when adjusting affinity, and taking CPUs on
and off line.

I don't think your genirq changes can tell the me information I really need in
their current state.  I think we need to consider how the masked state
interacts with IRQCHIP_ONOFFLINE_ENABLED and irqd_irq_disabled().

Since I have totally rewritten my interrupt code, I am a bit ambivalent about
applying these patches.  It might make more sense that I adjust my patch for
your genirq changes and test it before committing it.
The modifications I made are 100% equivalent to the code you provided
in the first place.

Acknowledged.

However subsequently, I made mostly equivalent changes. The main difference is that I added IRQS_MASKED into the mix testing it in addition to IRQS_DISABLED

The IRQCHIP_ONOFFLINE_ENABLED flag is only used for the on/offline
callbacks. The disabled checked based on irq_data is in the affinity
setting code.

Unless I'm missing something we should be all set.


As I mentioned in the other e-mail, I am concerned that some of the chip functions may get called when the desc is in a IRQS_MASKED istate.

If we can prevent calling .irq_cpu_online when IRQS_MASKED is set that might be good.

Perhaps adding a flag similar to IRQCHIP_ONOFFLINE_ENABLED, to disable calling .irq_set_affinity when the irq shouldn't be enabled.

With something like that, I think we can get rid of all the checks in the irq_chip functions.

Thanks,
David Daney



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux