1 |
You can make some tradeoffs with kernel options. Which one you |
2 |
choose is up to you (assuming it's your personal machine). In |
3 |
"make menuconfig" go to... |
4 |
|
5 |
General setup --> |
6 |
Preemption Model ---> |
7 |
|
8 |
You have 3 choices. The 1st choice will probably finish your |
9 |
rendering fastest, but other programs will have problems breaking in for |
10 |
a timeslice. This will look like freezing. The 3rd choice will give |
11 |
the most possibility for other programs to preempt, but will run |
12 |
slightly slower overall. The 2nd choice is a compromise. Assuming |
13 |
you're the admin of the machine, the choice is up to you. Sorry, "you |
14 |
can't have your cake and eat it too". |
15 |
|
16 |
1) "No Forced Preemption (Server)"; manual version "CONFIG_PREEMPT_NONE" |
17 |
|
18 |
> This is the traditional Linux preemption model, geared towards |
19 |
> throughput. It will still provide good latencies most of the time, |
20 |
> but there are no guarantees and occasional longer delays are possible. |
21 |
> |
22 |
> Select this option if you are building a kernel for a server or |
23 |
> scientific/computation system, or if you want to maximize the raw |
24 |
> processing power of the kernel, irrespective of scheduling latencies. |
25 |
|
26 |
2) "Voluntary Kernel Preemption (Desktop)"; "CONFIG_PREEMPT_VOLUNTARY" |
27 |
|
28 |
> This option reduces the latency of the kernel by adding more |
29 |
> "explicit preemption points" to the kernel code. These new |
30 |
> preemption points have been selected to reduce the maximum latency |
31 |
> of rescheduling, providing faster application reactions, at the |
32 |
> cost of slightly lower throughput. |
33 |
> |
34 |
> This allows reaction to interactive events by allowing a low |
35 |
> priority process to voluntarily preempt itself even if it is in |
36 |
> kernel mode executing a system call. This allows applications to |
37 |
> run more 'smoothly' even when the system is under load. |
38 |
|
39 |
3) "Preemptible Kernel (Low-Latency Desktop)"; "CONFIG_PREEMPT" |
40 |
|
41 |
> This option reduces the latency of the kernel by making all kernel |
42 |
> code (that is not executing in a critical section) preemptible. |
43 |
> This allows reaction to interactive events by permitting a low |
44 |
> priority process to be preempted involuntarily even if it is in kernel |
45 |
> mode executing a system call and would otherwise not be about to reach |
46 |
> a natural preemption point. This allows applications to run more |
47 |
> 'smoothly' even when the system is under load, at the cost of slightly |
48 |
> lower throughput and a slight runtime overhead to kernel code. |
49 |
|
50 |
-- |
51 |
Walter Dnes <waltdnes@××××××××.org> |
52 |
I don't run "desktop environments"; I run useful applications |