Subject: [PATCH v3 3/4] irq: Allow multiple clients to register for irq affinity notification

From: [email-masked] (Lina Iyer)
Date: Mon, 17 Nov 2014 23:22:05 -0700

Hi Thomas,

On Fri, Oct 17 2014 at 01:29 -0600, Thomas Gleixner wrote:
>On Fri, 10 Oct 2014, Lina Iyer wrote:
>> On Wed, Oct 08 2014 at 09:03 -0600, Thomas Gleixner wrote:
>> > On Thu, 25 Sep 2014, Lina Iyer wrote:
>> > > > How would a general "keep track of the targets of all interrupts in
>> > > > the system" mechanism make use of this?
>> > > Sorry, I do not understand your question.
>> > > PM QoS is only interested in the IRQs specified in the QoS request. If
>> > > there are no requests that need to be associated with an IRQ, then PM
>> > > QoS will not register for an affinity change notification.
>> >
>> > Right, and I really hate the whole per irq notifier. It's a rats nest
>> > of life time issues and other problems.
>> >
>> > It also does not tell you whether an irq is disabled, reenabled or
>> > removed, which will change the qos constraints as well unless you
>> > plaster all drivers with updates to qos for those cases.
>> >
>> > So what about adding a qos field to irq_data itself, have a function
>> > to update it and let the irq core keep track of the per cpu irq
>> > relevant qos constraints and provide an evaluation function or a
>> > notifier for the PM/idle code?
>>
>> If that isnt intrusive in the IRQ core, then we can make it work for PM
>> QoS. The issue that I am concerned is that, it might result in back and
>> forth between IRQ and PM QoS frameworks. If that doesnt happen, then we
>> are good with this approach.
>
>I can't tell that upfront, but I think it's worth to explore it.
>
I was able to review the options and I attempted a few methods, but
off-loading the QoS onto the IRQ framework, made it quite complex to
manage it. QoS values for each of the four constraints and the
constraints could be one of 3 types - min, max or sum, makes it a whole
lot of mess handling it in IRQ code.

I was able to get QoS to be notified of IRQ affinity changes without
using notifiers, but, I still am yet to find a way to modify QoS
requests on enable/disable of IRQ.

I will send the RFC of the new patchset, would be interested in taking a
look and let me know what you think.

Thanks,
Lina