Manfred Odenstein wrote:
was bewirkt eigentlich die option "desktop", ist das irgendwo beschrieben ??
im mantel-ftp-Dir: This kernel now has a new feature: variable HZ. On a desktop system, you might want to pass the kernel parameter "desktop". When doing so, HZ will be set to 1000 and the max and min timeslices are adapted accordingly. This hopefully gives a smoother feeling. und mehr info's dazu: Balancing Interactivity with SuSE Linux 9.0 Applies to: SL 9.0 SuSE Linux 9.0 / Balancing Interactivity Since SuSE Linux 9.0 there are some changes in the default scheduler settings. See the explenation below. A Linux system has many processes, most of them sleeping and waiting for work. As soon as they get work to do (hardware interrupt, network connection, ...) they should be woken up by the kernel as soon as possible. When you move the mouse, you want the X-Server to wake up and move the pointer immediately. When the sound card's bufffer runs low, you want xmms (or whoever generates sound for you) to wake up as soon as possible to fill it up again to avoid the sound to hicc-up. Or when you enter a character into your word processing application or text editor or shell, you want it to appear immediately. When just one process needs to run, there's no problem. When there are several runnable processes, the kernel normally lets a process run for a certain amount of time (timeslice), then interrupts it and gives the CPU to another process. The length of these timeslices determine how long the different processes actually get to run. The timeslices are relatively short, so the processes seem to run simlultaneously (multitasking), even if there's only one CPU. When a waiting process wakes up in such a situation, the kernel needs to take a decision whether to interrupt (preempt) the currently running process or not. This is done based on priorities which are adjusted according to whether the kernel thinks the process is "interactive". Processes that wait (sleep) most of their time are considered interactive. As long as there is only one interactive process and not too many processes are running, this works well, regardless of the scheduling frequency. However, the determination of interactiveness can fail, e.g. because a process happened to have consumed a lot of CPU before. (Have some background load (compilation, computation, ...) and move solid Windows around for a while on a non-accelerated X-server to provoke this: The X-Server consumes too much CPU and the mouse movement becomes jumpy.) In such a situation, a process that should be woken up may need to wait until other processes' timeslices expire (scheduling latency). The sooner this happens, the lower the scheduling latency and the better the interactive feel. The scheduling frequency can be tuned on SUSE 9.0 kernels with SCHED_MINTIMESLICE/MAXTIMESLICE settings. When set shorter, the scheduling latencies become smaller, thus the effects of the situations where an interactive process can't be woken immediately as described above becomes less visible. To be able to set shorter timeslices, one needs to use a higher timer frequency than the standard one of HZ=100/s. The higher scheduling frequency has a cost. The higher timer interrupt frequency needs the time interrupt handler to run more often, every time consuming a few CPU cycles and spoiling part of the CPU cache. (This accounts for ~1% of performance loss when using HZ=1000 instead of 100.) Using shorter timeslices also has a cost: Switching from on process to another consumes CPU cycles and also does make the CPU caches less effective. (This accounts for another ~3% of performance loss when using 10 times shorter timeslices than std.) Thus the higher timer interrupt rate and the shorter scheduling timeslices have been made tunable. The "desktop" boot parameter sets ten times shorter timeslices (1--31ms) and ten times higher timer interrupt rate (1000/s) than standard. Omitting it leaves you with the standard settings (10--310ms timeslices, 100 time interrupts per second). Alternatively, the timer frequency can be set manually to a multiple (or fraction of) 100 by using HZ= boot parameter. The timeslices can be set by SCHED_MIN/MAXTIMESLICE in the kernel sysconfig file. Have fun ;)