lkml.org 
[lkml]   [2000]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Low Latency
Paul Barton-Davis wrote:
>
>
> However, I imagine that Ingo and/or his previous patches will have
> some really good clues on where to look. Don't forget that the
> empirical evidence is that his patches fixed more or less every
> problem for 2.2-UP.

Sure. So one approach is for someone-not-me to sit down and
incrementally back out the low-latency patch, see which bits are valuable.

> So before you go running off to write a lot of
> code, it would be worth checking those out to see what specific
> problem areas he fixed.

I lied (about the several days). I hadn't accounted for sneakiness :)

#calls min max avg total

start 0003:0 -> stop 0003:0 11984 .44 137335.63 79.00 946861.71
start 0036:0 -> switchout 0036:0 1 51636.55 51636.55 51636.55 51636.55
start 0006:0 -> stop 0006:0 8822 .22 47868.22 9.86 87004.02
switchin 0036:0 -> stop 0036:0 1 38198.23 38198.23 38198.23 38198.23
start 0004:0 -> stop 0004:0 3616 .28 25446.21 122.41 442662.70
switchin 0036:0 -> switchout 0036:0 5 344.51 9536.27 2231.37 11156.85
switchin 0120:0 -> switchout 0120:0 12 300.87 2231.35 1118.98 13427.84
start 0001:0 -> switchout 0001:0 277 165.86 1754.28 378.32 104797.19
start 0011:0 -> stop 0011:0 1509 3.42 995.88 123.24 185981.58
switchin 0003:0 -> switchout 0003:0 15 83.93 923.64 358.31 5374.81
start 0002:0 -> stop 0002:0 51 248.54 661.83 431.20 21991.57
start 0091:0 -> stop 0091:0 1801 2.85 409.20 15.75 28373.10
start 0038:0 -> stop 0038:0 2 147.49 303.00 225.25 450.50
start 0141:0 -> stop 0141:0 6026 .52 263.12 18.52 111657.39
start 0106:0 -> stop 0106:0 23485 1.86 254.12 13.91 326718.06
start 0045:0 -> stop 0045:0 27837 .23 229.38 12.53 348853.23
start 0003:0 -> switchout 0003:0 1136 1.59 223.38 17.87 20305.02
start 0005:0 -> stop 0005:0 9451 4.18 179.53 24.04 227235.87
start 0125:0 -> stop 0125:0 371 2.36 176.07 11.21 4160.32
start 0190:0 -> switchout 0190:0 233 73.96 157.05 98.82 23025.28
start 0010:0 -> stop 0010:0 9 67.38 153.94 136.28 1226.60
switchin 0003:0 -> stop 0003:0 1136 .54 149.06 42.52 48304.91
start 0042:0 -> stop 0042:0 111 9.08 137.98 53.35 5922.20
start 0102:0 -> stop 0102:0 12 43.79 130.50 88.73 1064.81
start 0004:0 -> switchout 0004:0 23 21.81 120.93 91.58 2106.46
switchin 0004:0 -> switchout 0004:0 1192 32.20 118.27 50.94 60721.34

What this represents is the microseconds between particular points in the kernel.

"start NNNN:0 -> stop NNNN:0" is the time between entering syscall
number NNNN and leaving. There is no intervening call to schedule().

"start NNNN:0 -> switchout NNNN:0" is the time between entering
syscall NNNN and hitting switch_to() in schedule().

"switchin NNNN:0 -> stop NNNN:0" is the time between returning from
switch_to() and leaving the syscall.

sys_read() can remain in the kernel for a couple of hundred
milliseconds. You'll note that sometimes sys_read() will
call schedule() "start 0003:0 -> switchout 0003:0". But
sometimes it doesn't.

It's possible that I've screwed up, and there really was an
intervening schedule() in there. I'll take a look at the
sys_read() code paths tomorrow...

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

\
 
 \ /
  Last update: 2005-03-22 13:57    [W:0.045 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site