On Fri, 13 May 2022 09:43:29 +0100, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > On Fri, May 13, 2022 at 12:18 AM Marc Zyngier <maz@xxxxxxxxxx> wrote: > > On Thu, 12 May 2022 18:35:55 +0100, > > Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > > > > > On Thu, May 12, 2022 at 08:08:28PM +0300, Andy Shevchenko wrote: > > > > On Tue, Apr 19, 2022 at 03:18:36PM +0100, Marc Zyngier wrote: > > > > > This is a followup from [2]. > > > > > > > > > > I recently realised that the gpiolib play ugly tricks on the > > > > > unsuspecting irq_chip structures by patching the callbacks. > > > > > > > > > > Not only this breaks when an irq_chip structure is made const (which > > > > > really should be the default case), but it also forces this structure > > > > > to be copied at nauseam for each instance of the GPIO block, which is > > > > > a waste of memory. > > > > > > > > Is this brings us to the issue with IRQ chip name? > > > > > > > > The use case in my mind is the following: > > > > 1) we have two or more GPIO chips that supports IRQ; > > > > 2) the user registers two IRQs of the same (by number) pin on different chips; > > > > 3) cat /proc/interrupt will show 'my_gpio_chip XX', where XX is the number. > > > > > > > > So, do I understand correct current state of affairs? > > > > > > > > If so, we have to fix this to have any kind of ID added to the chip name that > > > > we can map /proc/interrupts output correctly. > > > > > > Hmm... Some drivers are using static names, some -- dynamically > > > prepared (one way or another). Either way I think the ID is good to > > > have if we still miss it. > > > > No, this is a terrible idea. /proc/interrupts gives you a hint of > > which driver/subsystem deals with the interrupt. This isn't a source > > of topological information. /sys/kernel/debug/irq has all the > > information you can dream of, and much more. Just make use of it. > > Okay, so IIUC the mapping is that: I got a vIRQ number from > /proc/interrupts, but then I have to mount debugfs and look into it > for a detailed answer of which chip/domain this vIRQ belongs to. Normal users shouldn't care about irqdomains. If you are developing, you already have debugfs enabled and mounted on your system. > Also /sys/kernel/irq rings a bell, but not sure if it's related. This is the same thing as /proc/interrupt, just dumped with a different format. M. -- Without deviation from the norm, progress is not possible.