[LITMUS^RT] ARM compilation patches.

Christopher Kenna cjk at cs.unc.edu
Mon Oct 1 17:36:12 CEST 2012


On Mon, Oct 1, 2012 at 10:58 AM, Manohar Vanga <mvanga at mpi-sws.org> wrote:
> Hi Christopher,
>
> I was just wondering as to what version of the kernel you are using for the ODROID-X. I compiled from the Hardkernel linux tree on Github but it seems to be patched on top of Linux 3.6-rc6. Did you rebase their patches on top of the 3.0 tag? Or did you already port Litmus onto the newer kernel?
>
> Any help would be greatly appreciated. Thanks!
> /manohar

Hi Manohar,

I have struggled with the ODROID-X for at least a week or two--I'm
glad someone else is too :)

I could not get the vanilla v3.0.X kernel to boot on the ODROID-X. I
wrote an author of some ODROID-X related commits and asked him for a
v3.0 kernel. He sent me a v3.0.42 kernel with some modifications by
Hardkernel and Google. The Hardkernel group mostly ported back
ARM-related changes by Vincent Guittot, added newer versions of the
Samsung Exynos files from later kernels (arch/arm/mach-exynos), and
added machine-specific code to a mach-odroid-x.c file. The Google
changes added power-saving features for Android phones (like disabling
CPUs aggressively with CPU hotplug) and added JRCU (Joe's tiny RCU)
and similar changes. I disabled many of these changes because I want
the kernel to be as close to vanilla as possible. JRCU seems
particularly bad, as it requires a JRCU daemon to track context
switches, which I expect LITMUS^RT would starve. The situation is not
ideal, but it seemed like the lesser of two evils (porting LITMUS^RT
to v3.6 is not a task I want to undertake now).

After that, I merged in LITMUS^RT from staging, and it actually merged
quite cleanly. I can probably put this code online somewhere if you
are interested. There are some things that are still not working
correctly. For example, I have yet to figure out how to enable the CPU
cycle counter on more than just core 0 of the Cortex-A9, but I expect
that I just need to have each core execute the assembler that actually
enables it. This approach is what I started from, even though the
question asks about the A8 processor:
http://stackoverflow.com/questions/3247373/how-to-measure-program-execution-time-in-arm-cortex-a8-processor/3250835#3250835

Can I ask what you are working on? Have you made other progress
related to the Cortex-A9 (or other ARM CPUs)? If so, I am interested.
I hope that we can talk more about it and even share code.

Thanks,
Chris




More information about the litmus-dev mailing list