Thread (10 messages) 10 messages, 5 authors, 2016-12-01

RT_PREEMPT on Raspberry PI 3

From: Giuliano Colla <hidden>
Date: 2016-09-18 10:09:05

Hi everybody,

I'm developing industrial applications requiring real-time performance 
on a Raspberry pi3 platform.

I have managed to achieve both good performance and good stability, but 
I have been obliged to overcome some difficulties which IMHO could have 
been avoided if the Raspberry platform peculiarities had been given more 
attention. Being a very popular platform, particularly suited also for 
real-time applications, I believe it deserves it.

The main items are:

1) The RT patches are not in sync with mainline Raspbian kernel 
versions. At the time of writing, the stock 4.x kernel supported is 
4.4.21, while the last available patch is 4.4.19-rt27. Even going 
backwards it's impossible to find a perfect match: 4.4.14 against 
4.4.12-rt20 or 4.4.15-rt23, and so on.

I'm currently using a 4.4.13 kernel with a 4.4.12-rt19 patch, which was 
the best match I could find, and which required some minor manual 
adjustments.

Is there a way to provide a better sync?

2) The RT_PREEMPT patch is not compatible with FIQ (or maybe FIQ is not 
compatible with RT_PREEMPT). Leaving FIQ enabled generates intolerably 
frequent freezes. It appears to work properly only on the basic 
Raspberry pi (single core) but not on the multicore Pi2 and Pi3. 
Currently the only way to make a real-time kernel run on Raspberry PI 2 
or 3 is to disable FIQ on the command line.

If the RT_PREEMPT patch could somehow support this incompatibility 
(either by fully disabling FIQ or fixing the code) this would be a great 
help, thus avoiding populating forums with "my raspberry pi2/3 freezes 
with rt patch"

Can something be done to solve those issues?

Thanks,

Giuliano

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help