On Fri, Feb 06 2026 at 02:04, Qiliang Yuan wrote: s/Managed IRQs/managed interrupts/ in $subject
> Support dynamic reconfiguration of CPU isolation by making the managed > interrupts responsive to housekeeping mask changes at runtime. > > 1. Register a housekeeping notifier in the genirq subsystem to listen > for HK_TYPE_MANAGED_IRQ updates. > 2. Iterate through all active interrupts when a mask update occurs. > 3. Re-apply affinity for managed interrupts to ensure they honor the > newly configured housekeeping mask. > 4. Use irq_set_affinity_locked() to trigger migration away from newly > isolated CPUs or towards newly designated housekeeping CPUs. Please don't explain implementation details in the change log. They can be seen from the patch. Explain the why and the concept of the change https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#changelog > Signed-off-by: Qiliang Yuan <[email protected]> > Signed-off-by: Qiliang Yuan <[email protected]> So you developed that together with your alter ego? Pick one please. > +#ifdef CONFIG_SMP > +static int irq_housekeeping_reconfigure(struct notifier_block *nb, > + unsigned long action, void *data) > +{ > + struct housekeeping_update *upd = data; > + struct irq_desc *desc; Move desc into the loop > + unsigned int irq; > + > + if (action != HK_UPDATE_MASK || upd->type != HK_TYPE_MANAGED_IRQ) > + return NOTIFY_OK; > + > + irq_lock_sparse(); > + for_each_active_irq(irq) { > + struct irq_data *id; id is really not a intuitive name. Most code here uses 'irqd'. > + desc = irq_to_desc(irq); > + if (!desc) > + continue; > + > + scoped_guard(raw_spinlock_irqsave, &desc->lock) { raw_spinlock_irq. There is nothing to save here as this is preemptible thread context, no? You can simplify all of the above by using: scoped_irqdesc_get_and_lock(irq, 0) { struct irq_data *irqd = irq_desc_get_irq_data(scoped_irqdesc); .... > + id = irq_desc_get_irq_data(desc); > + if (!irqd_affinity_is_managed(id) || !desc->action || > + !irq_data_get_irq_chip(id)) No line break required. You have 100 characters. > + continue; Thanks, tglx

