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