Skip to content
  • Marc Zyngier's avatar
    irqchip: Add per-cpu interrupt partitioning library · 9e2c986c
    Marc Zyngier authored
    We've unfortunately started seeing a situation where percpu interrupts
    are partitioned in the system: one arbitrary set of CPUs has an
    interrupt connected to a type of device, while another disjoint
    set of CPUs has the same interrupt connected to another type of device.
    
    This makes it impossible to have a device driver requesting this interrupt
    using the current percpu-interrupt abstraction, as the same interrupt number
    is now potentially claimed by at least two drivers, and we forbid interrupt
    sharing on per-cpu interrupt.
    
    A solution to this is to turn things upside down. Let's assume that our
    system describes all the possible partitions for a given interrupt, and
    give each of them a unique identifier. It is then possible to create
    a namespace where the affinity identifier itself is a form of interrupt
    number. At this point, it becomes easy to implement a set of partitions
    as a cascaded irqchip, each affinity identifier being the HW irq.
    
    This allows u...
    9e2c986c