Re: [PATCH] Improvev netconsole support for RTL8139 NIC driver

From: Jeff Garzik
Date: Wed Mar 26 2008 - 00:32:44 EST


David Miller wrote:
First, if you mention CPU instructions executed you're
totally ignoring what I wrote. Which is that we're
about to sit spinning on hundreds of cycles doing a PIO
read on a status register.

Those hand full of cycles doing the irqsave/irqrestore don't matter,
at all.

Again, you're arguing for 18 cycles or so out of say 800.
It's peanuts, at best.

No, I hear you.

I'm not focusing on cycles, but list examples of the negative effects of doing needless work for the sake of consistency:

* eliminates ability to compile-out spinlocks on UP
* code size increases (even if miniscule)
* CPU instructions in a hot path increases (even if lost in the noise)
* stack usage increases (even if miniscule)

But those are just examples of the principle: don't do work you don't need to do.

I also think spin_lock -> spin_lock_irqsave amounts to a slight loss of information, too: Use of spin_lock() rather than spin_lock_irqsave() potentially gives the -rt folks some additional flexibility, by advertising a different set of acceptable irq-disablement states.

Is the effect huge in this specific case? No.

Does that give us license to add needless code to drivers? No, again, IMO.

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/