Messages in this thread | | | Date | Wed, 15 Mar 2000 15:59:35 -0800 | From | jsun@mvista ... | Subject | run-away __cli() function call in do_rw_disk()? |
| |
I did some interrupt latency tests for linux-2.2.12, and notice an unusal __cli() in do_rw_disk(). See part of the related results below.
Function do_rw_disk() calls __cli() and disables interrupts. It never enables it again within the function. As the results show, interrupts were opened later in various places.
Interrupts were typically blocked for around 150 us on a PentinumII 266 machine, which is quite long, especially for slower and/or embedded systems.
I am really not an expert on IDE driver. Can someone confirm if this is a bug or not? In either case, is there a fix to shorten the interrupt blocking time?
The file is drivers/block/ide-disk.c. Line is 390.
Verified that the code is still there in 2.3.35.
Thanks.
Jun
log entry : 3 (It starts in do_rw_disk(), and ends in schedule(). The likely situation is that do_rw_disk() is called in a bottom half which executes at the beginning of schedule(). This looks like a run-away cli() bug to me.) blockingTime : 39665 (149 us) startFileName : ide-disk.c startFileLine : 390 startCount : 2857903113 endFileName : sched.c endFileLine : 785 endCount : 2857942778
log entry : 4 (starts in do_rw_disk(), and ends in add_request(). Same run-away cli()?) blockingTime : 38631 (145 us) startFileName : ide-disk.c startFileLine : 390 startCount : 3527929548 endFileName : ll_rw_blk.c endFileLine : 383 endCount : 3527968179
log entry : 5 (starts in do_rw_disk(), and ends in do_bottom_half(). Same run-away cli()?) blockingTime : 39388 (148 us) startFileName : ide-disk.c startFileLine : 390 startCount : 1086162364 endFileName : softirq.c endFileLine : 63 endCount : 1086201752
log entry : 6 (starts in do_rw_disk(), and ends in unplug_device(). Same run-away cli()?) blockingTime : 39582 (148 us) startFileName : ide-disk.c startFileLine : 390 startCount : 4251397310 endFileName : ll_rw_blk.c endFileLine : 172 endCount : 4251436892
l
- 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.tux.org/lkml/
| |