Messages in this thread | | | Date | Thu, 27 Aug 1998 18:57:09 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | Linux Interrupt Latency benchmark v4 avaible -> detected irq bottleneck before do_bottom_half() |
| |
lil-4 is avaible at http://e-mind.com/~andrea/linux.shtml (take a look at my new completely rewritten homepage BTW ;-).
I developed a new very useful feature (to enable with detect=1) in lil-4. At interrupt time now lil account the eip address where the kernel was running before to run the irq handler. Then if the latency of the irq handler is more than 3 times the mean of the latency until that time, lil will printk the eip address of the kernel code that was running a bit before to run the interrupt handler.
This new feature has raised that the _only_ point where the kernel is not interrupt friendly is before the __sti() in do_bottom_half().
And here the numbers:
root@dragon:/home/andrea/devel/irq-latency/lil# insmod ./lil.o irq=3 num=2000000 detect=1 Linux Interrupt Latency benchmark - Copyright (C) 1998 Andrea Arcangeli detected slow IRQ at: cycle 252593, latency 1653, eip c0117b05, CPU 0 detected slow IRQ at: cycle 254190, latency 2009, eip c0117b05, CPU 0 detected slow IRQ at: cycle 1560602, latency 1914, eip c017c00c, CPU 0 detected slow IRQ at: cycle 1560659, latency 2100, eip c017c00c, CPU 0 latency cycles: mean 542, max 2100, min 542
With 2000000 irq, the mean latency is 542 cycles. The only times the latency was > than 3*542 the kernel was running at 2 asm instruction after the sti() in do_bottom_half().
Andrea[s] Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html
| |