Re: [git patch] free_irq() fixes
From: Jeff Garzik
Date: Thu Apr 24 2008 - 06:54:30 EST
Eric W. Biederman wrote:
I haven't looked at what Jeff's patches in particular so I can not
comment there. I do remember looking at the drivers in question and
yes there were indeed bugs with the handful of drivers that used
the irq parameter. So fixing and cleaning up those drivers so they
use the same idioms as the rest of the kernel should be a maintenance
win. Even if we do keep the irq parameter to the interrupt handler.
I can comment on where there seems to be a real need for change.
The hard coded NR_IRQS parameter and the arrays of size NR_IRQS are a
kernel scaling bottle neck. They prevents us from building one kernel
that works well on a large ranges of machines sizes. Having a single
array prevents us from allocating the irq structures with NUMA
affinity which slows down irq processing. Having a small number for
NR_IRQS to keep the table compact keeps the irq number from being
readable/useful in the case of MSI and occasionally in the case of
IO_APICs.
Honestly, one thing I was thinking was perhaps a change from
irqreturn_t foo_handler(int irq, void *dev_id)
to
irqreturn_t foo_handler(struct irq_info *ii, void *dev_id)
which would IMO make the first parameter useful again, by enabling
passing of information like MSI message info, or more flexible
platform-specific irq info that a platform driver may want. Or direct
access to irq_desc or irq_chip info.
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/