Re: Linux RT patch works on single core - but not booting SMP ARM OMAP4 PandaBoard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>On Tue, Aug 16, 2011 at 3:03 PM, Frank Rowand <frank.rowand@xxxxxxxxxxx> wrote:
> On 08/16/11 11:38, Frank Rowand wrote:
>> SMP Panda is booting fine for me on a slightly older version: 3.0.0-rt6
>>
>> gcc 4.3.3
>>
>> Config is attached.
>>
>> I used make omap2plus_defconfig then tweaked a few items:

> And 3.0.1-rt11 also boots SMP CONFIG_PREEMPT_RT_FULL on panda board for
> me, with the same recipe I gave for 3.0.0-rt6.

Thanks Frank. I first tried your suggestion of "make
omap2plus_defconfig" with additional config options to enable USB
ethernet with rt8 patch but could not get SMP kernel to boot. Then, I
applied rt11 patch and used the exact same .config file that you had
posted in this thread and the SMP kernel is booting fine now. I have
applied the following high-resolution timer patch that is posted in
the OMAP mailing list:

************ PATCH START **************
diff -rupN a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
--- a/arch/arm/mach-omap2/timer-gp.c	2011-06-06 10:42:45.964924603 -0500
+++ b/arch/arm/mach-omap2/timer-gp.c	2011-06-06 10:44:03.725422077 -0500
@@ -230,6 +230,12 @@ static void __init omap2_gp_clocksource_
 	static char err2[] __initdata = KERN_ERR
 		"%s: can't register clocksource!\n";

+	char clocksource_hwmod_name[8]; /* 8 = sizeof("timerXX0") */
+
+	/* XXX: This may not be always true, we might get different timer */
+	sprintf(clocksource_hwmod_name, "timer%d", gptimer_id + 1);
+	omap_hwmod_setup_one(clocksource_hwmod_name);
+
 	gpt = omap_dm_timer_request();
 	if (!gpt)
 		printk(err1, clocksource_gpt.name);
************ PATCH END **************
The cyclic test results are not acceptable (attached the output of
cyclictest). I am seeing maximum latency of 757 us on core-0 and 1905
us on core-1. Are you (Is anyone) seeing better results on latency
with SMP kernel with RT patch on ARM (OMAP4 processors)? I have seen
~25 us of latency with single core kernel (though I have used a
different kernel configuration).

PS: The kernels that I build especially with RT patch don't boot the
first time on the panda board. Sometimes, it takes 2 or 3 resets and
sometimes 10 to 15 times. When it hangs, it always hangs right after
"Uncompressing Linux... done, booting the kernel." It looks like it is
probably due to some race conditions in kernel during initial boot. I
am hoping it is not a hardware issue. Has anyone else been
experiencing flakiness and early hangs on panda board? I am using code
sourcery toolchain (Sourcery G++ Lite 2010.09-50 for ARM GNU/Linux )
to build the kernel. The Linux kernels at some point in the past month
or so that I built with the latest code sourcery toolchain (Sourcery
G++ Lite 2011.03-41 for ARM GNU/Linux) did not boot. That said, it is
hard to blame the toolchain, because of the flakiness in booting the
same kernel image (boots fine after 15 resets).

Thanks,
Sankara Muthukrishnan

Attachment: cyclicTestSMP.log
Description: Binary data


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux