Is the default Raspbian shipped with the real time patch?
I'm using the .config
of the default Raspbian installation as a base for a custom kernel compilation. In the section:
>Kernel Features
-> Preemption Model (<choice> [=y])
The selected option is Preemptible Kernel (Low-Latency Desktop)
.
The description of the option is:
This option reduces the latency of the kernel by making all kernel code (that is not executing in a critical section) preemptible. This allows reaction to interactive events by permitting a low priority process to be preempted involuntarily even if it is in kernel mode executing a system call and would otherwise not be about to reach a natural preemption point. This allows applications to run more 'smoothly' even when the system is under load, at the cost of slightly lower throughput and a slight runtime overhead to kernel code.
Select this if you are building a kernel for a desktop or embedded system with latency requirements in the milliseconds range.
However, when I did some testing, in which I generated a software PWM on the GPIO with the frequency 1kHz, the behaviour was far from real time.
Does kernel preemption mean that rt_patch is included in the kernel? What else would I gain with the real time patch if the kernel is already preemptive? If the kernel is preemptive, why was the PWM unclean?