osdl.org!shemminger | aba5acd | 2004-04-15 20:56:59 +0000 | [diff] [blame] | 1 | Kernel code and interface. |
| 2 | -------------------------- |
| 3 | |
| 4 | * Compile time switches |
| 5 | |
| 6 | There is only one, but very important, compile time switch. |
| 7 | It is not settable by "make config", but should be selected |
| 8 | manually and after a bit of thinking in <include/net/pkt_sched.h> |
| 9 | |
| 10 | PSCHED_CLOCK_SOURCE can take three values: |
| 11 | |
| 12 | PSCHED_GETTIMEOFDAY |
| 13 | PSCHED_JIFFIES |
| 14 | PSCHED_CPU |
| 15 | |
| 16 | |
| 17 | PSCHED_GETTIMEOFDAY |
| 18 | |
| 19 | Default setting is the most conservative PSCHED_GETTIMEOFDAY. |
| 20 | It is very slow both because of weird slowness of do_gettimeofday() |
| 21 | and because it forces code to use unnatural "timeval" format, |
| 22 | where microseconds and seconds fields are separate. |
| 23 | Besides that, it will misbehave, when delays exceed 2 seconds |
| 24 | (f.e. very slow links or classes bounded to small slice of bandwidth) |
| 25 | To resume: as only you will get it working, select correct clock |
| 26 | source and forget about PSCHED_GETTIMEOFDAY forever. |
| 27 | |
| 28 | |
| 29 | PSCHED_JIFFIES |
| 30 | |
| 31 | Clock is derived from jiffies. On architectures with HZ=100 |
| 32 | granularity of this clock is not enough to make reasonable |
| 33 | bindings to real time. However, taking into account Linux |
| 34 | architecture problems, which force us to use artificial |
| 35 | integrated clock in any case, this switch is not so bad |
| 36 | for schduling even on high speed networks, though policing |
| 37 | is not reliable. |
| 38 | |
| 39 | |
| 40 | PSCHED_CPU |
| 41 | |
| 42 | It is available only for alpha and pentiums with correct |
| 43 | CPU timestamp. It is the fastest way, use it when it is available, |
| 44 | but remember: not all pentiums have this facility, and |
| 45 | a lot of them have clock, broken by APM etc. etc. |
| 46 | |
| 47 | |