• Craig Gallek's avatar
    genirq: Expose interrupt information through sysfs · ecb3f394
    Craig Gallek authored
    Information about interrupts is exposed via /proc/interrupts, but the
    format of that file has changed over kernel versions and differs across
    architectures. It also has varying column numbers depending on hardware.
    
    That all makes it hard for tools to parse.
    
    To solve this, expose the information through sysfs so each irq attribute
    is in a separate file in a consistent, machine parsable way.
    
    This feature is only available when both CONFIG_SPARSE_IRQ and
    CONFIG_SYSFS are enabled.
    
    Examples:
      /sys/kernel/irq/18/actions:	i801_smbus,ehci_hcd:usb1,uhci_hcd:usb7
      /sys/kernel/irq/18/chip_name:	IR-IO-APIC
      /sys/kernel/irq/18/hwirq:		18
      /sys/kernel/irq/18/name:		fasteoi
      /sys/kernel/irq/18/per_cpu_count:	0,0
      /sys/kernel/irq/18/type:		level
    
      /sys/kernel/irq/25/actions:	ahci0
      /sys/kernel/irq/25/chip_name:	IR-PCI-MSI
      /sys/kernel/irq/25/hwirq:		512000
      /sys/kernel/irq/25/name:		edge
      /sys/kernel/irq/25/per_cpu_count:	29036,0
      /sys/kernel/irq/25/type:		edge
    
    [ tglx: Moved kobject_del() under sparse_irq_lock, massaged code comments
      	and changelog ]
    Signed-off-by: default avatarCraig Gallek <kraig@google.com>
    Cc: David Decotigny <decot@google.com>
    Link: http://lkml.kernel.org/r/1473783291-122873-1-git-send-email-kraigatgoog@gmail.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    ecb3f394
irqdesc.c 21.1 KB