On Mon, Jul 07, 2008 at 11:48:03AM -0600, Matthew Wilcox wrote: > On Mon, Jul 07, 2008 at 10:45:34AM -0600, Grant Grundler wrote: > > If the system is busy, the readl is the cost of coalescing the > > interrupts. I suspect it's cheaper to take one readl than > > handle 16 individual interrupts. > > 16 would be a maximum imposed by the AHCI spec. My ICH9 board has 6 > ports, but requests all 16 interrupts > > > I'm just pointing out the only upside of the existing code and not trying > > to argue against this patch. > > There may well be an upside to the existing code, but it's pretty slim. > The oprofile shows clearly that ahci_interrupt is the largest consumer of > time during an iozone run. The only thing that routine does is read the > HOST_IRQ_STAT register, acquire the spinlock and loop calling > ahci_port_intr(). > > I don't have a profile for this new code yet. Hopefully we'll have one > by the end of the day. Willy, where you able to get this profile? I'm still curious. > > > BTW, one more downside of the regular IRQ is it's possibly shared. > > Using MSI guaratees exclusive IRQ and avoids spurious readl's > > when AHCI is not busy but the other device is. This would be worth > > noting (or as a reminder) in the change log or as a comment in > > the code. > > AHCI already allocates itself a new MSI if the machine supports MSI. > This change merely extends AHCI to use multiple MSIs. ok. thanks, grant > > Thanks. > > -- > Intel are signing my paycheques ... these opinions are still mine > "Bill, look, we understand that you're interested in selling us this > operating system, but compare it to ours. We can't possibly take such > a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html