Some interrupt latency figures for 2.3.99-pre3

From: Andrew Morton (andrewm@uow.edu.au)
Date: Sat Mar 25 2000 - 08:55:08 EST


400MHz uniprocessor Celeron. I am using non-DMA IDE, networking and
very little else.

The workload involved compiling a kernel, starting X, some NFS client
activity and a fair bit of paging. All times in microseconds.

     file-n-line Count Min Max Avg

   console.c:2015 -> console.c:2039 224 .88 2068.86 21.90
   console.c:1857 -> console.c:1975 3283 .74 1943.17 15.80
     cs89x0.c:1186 -> cs89x0.c:1207 504 43.82 1280.56 143.47
               vt.c:810 -> vt.c:812 1 982.32 982.32 982.32
  ide-disk.c:451 -> ll_rw_blk.c:277 157 126.23 959.35 334.22
       ide-disk.c:451 -> ide.c:1622 1718 118.94 956.99 277.61
           ide.c:1533 -> ide.c:1622 8911 14.52 952.61 606.20
           ide.c:1533 -> ide.c:1298 3904 10.79 884.30 202.74
 ll_rw_blk.c:620 -> ll_rw_blk.c:770 7781 1.53 91.15 7.74
             irq.c:355 -> irq.c:367 4898 .79 88.08 2.24
 ll_rw_blk.c:620 -> ll_rw_blk.c:728 48205 1.01 86.10 1.34
 ll_rw_blk.c:620 -> ll_rw_blk.c:742 124 15.57 81.24 44.12
 ll_rw_blk.c:746 -> ll_rw_blk.c:770 124 4.56 52.90 14.19
        do_IRQ.in:0 -> softirq.c:66 19418 11.15 35.02 26.28
 ll_rw_blk.c:325 -> ll_rw_blk.c:327 251 1.74 34.34 8.44
     pc_keyb.c:476 -> pc_keyb.c:478 220 10.71 32.45 25.99
         timer.c:644 -> timer.c:655 20138 .82 22.35 2.88
           exit.c:363 -> exit.c:395 539 1.19 19.58 1.83
age_alloc.c:194 -> page_alloc.c:211 166766 .87 16.43 3.03
         slab.c:1813 -> slab.c:1839 3377 .68 13.22 1.26
             kmod.c:81 -> kmod.c:84 2 12.80 12.87 12.83
      ll_rw_blk.c:271 -> ide.c:1298 3843 4.36 12.77 10.11
       signal.c:306 -> signal.c:410 821 .84 11.55 7.65
         sched.c:651 -> sched.c:683 102720 .73 11.25 1.74
           ide.c:1714 -> ide.c:1298 8 7.25 10.94 8.98
           do_IRQ.in:0 -> irq.c:439 15572 3.33 10.89 6.11
            ide.c:1533 -> ide.c:945 4 7.86 10.41 8.93
age_alloc.c:121 -> page_alloc.c:153 160473 .81 10.29 1.44
       signal.c:621 -> signal.c:623 595 .84 10.09 6.12
     cs89x0.c:1421 -> cs89x0.c:1425 2 7.96 8.83 8.40

It shows that the console switching code and do_con_write() are blocking
interrupts for up to two milliseconds.

It shows that the cs89x0 driver is a dog. What dope maintains that?
(Actually this shows how slow the ISA bus is).

Probably the most significant source of latency on this system is the
PIO-mode IDE driver.

I would be interested in seeing results for more systems: SCSI, DMA-IDE,
audio, etc.

I would be interested in hearing views on how significant a 2 msec
interrupt blockage really is. Can it cause serial Rx overruns? GigE
problems?

Anyway, if anyone has some particular interest in interrupt response
times please grab the tools - it's an easy patch.

-- 
-akpm-

- 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/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:15 EST