i've done some timings on cli()/sti() latency, on IP basis. Most parts of the kernel are OK, they have less than 100 usecs of max latency. There is one thing why device driver writers take care of cli()/sti() latencies, it's the serial interrupt. If the latency is too high, then we loose serial data quite easily. Some hard data: on a 100 MHz Neptun dual CPU system, hardware interrupt latency is 10+-1 usecs, typical cli()/sti() latencies are on the order of 10 usecs. Some code like the IDE driver has latencies up to 100 usecs, occasionally higher. The IDE driver latency can be minimized by using the hdparm utility: multiple mode and irq masking should be turned off. |