Hi Charles,

the PREEMPT_RT patches can now be applied to the BBB kernel. As John3909 
suggested there is a ready to use patch script available from OSADL. 
Compiling a BBB kernel 3.12.10-rt15 is quick and easy. But unfortunately, 
it requires the use of kernel 3.12.x which causes problems with the GPMC as 
documented at 
https://groups.google.com/forum/#!searchin/beagleboard/gpmc/beagleboard/KOHLJI1NUTA/8wrsV_ZodDUJ.

In the default BBB kernel there is no "built-in" PREEMPT option. Without 
that Linux cannot be used for any time critical application and latencies a 
very bad. Contrary to that the Raspberry PI's default kernel had PREEMPT 
activated from the very beginning and does provide some form of determinism 
out of the box.

What we need is a default kernel that has at least support for the simple 
PREEMPT option. Yes, there are custom drivers and they need to fit into the 
concept. But that is working perfectly for the Raspberry PI which 
definitely uses custom firmware and drivers. The BBB seems to be far behind 
that.



Am Montag, 24. Februar 2014 18:30:51 UTC+1 schrieb Charles Steinkuehler:
>
> Be careful of applying x86 experience to the ARM.  PREEMPT_RT requires 
> well written driver code that is "high-performance SMP friendly" in 
> order to run well.  PREEMPT_RT on the x86 works so well because a *LOT* 
> of smart people have been working very hard to get maximum performance 
> out of the multi-core CPUs that ship in virtually every new system these 
> days. 
>
> ARM systems, on the other hand, are riddled with vendor supplied device 
> drivers that hopefully work well and if you're lucky weren't written by 
> the summer intern.  The ARM situation _is_ getting better, but IMHO 
> PREEMPT_RT on the ARM is still hit-and-miss.  It will work quite well in 
> some situations, and have horrible performance on similar but 
> not-quite-identical setups. 
>
> That said, while Xenomai offers better bounded performance figures, 
> PREEMPT_RT is perfectly fine for a large class of problems and as you 
> mentioned you get access to the full suite of Linux services. 
>
> Unless I missed it, you never said exactly _what_ you are trying to do, 
> you simply started off by complaining that the kernel wasn't configured 
> by default the way that you wanted it.  So go compile a kernel, and if 
> you're asking for advice, please provide specifics on exactly what you 
> are trying to do and any limitations on your solution space. 
>
> Also, make sure you test any PREEMPT_ based kernel to determine your 
> worst-case performance.  When I was looking into this some time ago, the 
> PREEMPT_RT patches wouldn't even apply to the BeagleBone kernel, and 
> using the built-in CONFIG_PREEMPT setting I was seeing latencies in the 
> hundreds of mS (yes that is tenths of seconds!).  I believe things have 
> gotten much better, but you'll need to test to know if your setup will 
> provide the performance you require. 
>
> On 2/24/2014 10:47 AM, [email protected] <javascript:> wrote: 
> > Only PREEMPT_RT allows access to the full Linux functionality. Xenomai 
> uses 
> > a dual kernel concept which is very limited. All custom device drivers 
> need 
> > be design to fit into the Xenomai concept which makes things even worse. 
> > The performance gain of Xenomai compared to that of PREEMPt_RT is 
> > negligible in most cases. 
> > 
> > 
> > Am Freitag, 21. Februar 2014 12:27:01 UTC+1 schrieb Giuseppe Iellamo: 
> >> 
> >> Or just try Xenomai... 
> >> 
> >> https://github.com/cdsteinkuehler/linux-dev/tree/3.8.13-bone39-xenomai 
> >> 
> >> 
> >> Il giorno venerdì 21 febbraio 2014 11:03:24 UTC+1, David Goodenough ha 
> >> scritto: 
> >>> 
> >>> On Friday 21 February 2014 00:20:39 [email protected] wrote: 
> >>>> I am trying to figure out how to create a kernel for the BBB that 
> >>> supports 
> >>>> PREEMPT_RT. It's kind of strange that the BBB's default kernel does 
> not 
> >>>> even have PREEMPT activated. Such a board doesn't fit to many 
> embedded 
> >>>> applications where we need at least some kind of determinism. It is 
> >>> even 
> >>>> worse, that nobody seems to care about this problem. Contrary to 
> that, 
> >>> the 
> >>>> Raspberry PI's standard kernel has PREEMPT activacted from the very 
> >>>> beginning. 
> >>>> 
> >>>> I have tested Robert Nelsons kernel 3.8.13-r9 
> >>>> (https://github.com/beagleboard/kernel/tree/3.8-rt). It does not 
> have 
> >>>> PREEMPT_RT activated by default. When doing so, it does not boot. But 
> >>>> activating PREEMPT does work. However, development of this branch has 
> >>>> stopped several months ago. The official source for RT Linux (3.8.13) 
> >>> has 
> >>>> evolved since then. Meanwhile there's an rt17 patch set 
> >>>> (https://www.kernel.org/pub/linux/kernel/projects/rt/3.8/). Did 
> >>> anybody 
> >>>> give this a try? Does it work with the BBB? 
> >>> Surely the point of the Beaglebone, or rather its processor, is that 
> you 
> >>> do not need to put the time critical bits on the main processor, you 
> put 
> >>> them in the PRUSS processors. 
> >>> 
> >>> David 
> >>> 
> >> 
> > 
>
>
> -- 
> Charles Steinkuehler 
> [email protected] <javascript:> 
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to