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. Also /sys/kernel/irq rings a bell, but not sure if it's related. -- With Best Regards, Andy Shevchenko