Originally posted by perpetually high
View Post
- Higher timer frequencies (1000 Hz) and a preemptible kernel can in certain scenarios result in lower IPC (instructions per clock) compared to lower timer frequencies (300 Hz, 100 Hz) and a non-preemptible kernel. Reason: It might be harder to refill the L1/L2/L3 caches in 1 millisecond than in 3.3ms or 10ms. Low-latency kernel can reduce perceived latency in for example GUI applications (such as interaction with terminals, browsers, IDEs, etc), but it may also decrease overall throughput which means that although applications feel more responsive it takes longer time to finish the tasks.
- In cases when the number of processes running at the same time is not larger than the number of hardware threads, it most likely does not matter whether the timer frequency is 100 Hz or 1000 Hz and it does not matter whether the kernel is configured for low-latency or for throughput. Typical desktop CPUs of today can run 8-16 threads in parallel, which means that it is less likely for the kernel to run out of hardware threads when scheduling tasks compared to the case of low-thread CPUs of the past (1-4 threads). Future typical desktop CPUs will have 16-32 hardware threads, so the likelihood of running out of HW threads will be less likely than today.
- If a machine feels unresponsive then the user should primarily take a look at how many tasks are competing for the available hardware threads and should check whether the peak number of running tasks exceeds the number of HW threads. A desktop environment indicator such as xfce4-systemload-plugin can help identify cases of high CPU utilization. The scheduling priority of build jobs (Makefiles, etc) should be kept lower than the scheduling priority of GUI applications.
Comment