l4android can not run rightly on Pandaboard?

Stefan Kalkowski stefan.kalkowski at ...1...
Fri Apr 26 14:48:53 CEST 2013


Hi,

sorry for my late response!

On 04/15/2013 01:59 PM, longjks wrote:
> hi,
> I am working to make Android4.0.4 boot on PandaBoard. However the
> l4android stop unexpected.
> I can see some page-fault error in the android_term, but I can not save
> it from android_term.
> !WARN: rild: Page-fault above task size: pfa=ffff00c0 pc=b7b02758
> !0:ffff00b4 00000005 00000000 ffff00b4 4:b7b2e004 00000005 00000004 0000ab1c
> !8:b0012fa8 b7b31000 00050000 b7aec000 12:00000000 bf4d56d8 b0003a43
> b7ba5758
> !CPSR:40000130 Err:0041000f
> What does this error mean?

Well, that error is printed by the Linux kernel, and informs you about
the pagefault of one of its user tasks. The rild process (radio
interface layer daemon of Android) caused a pagefault. I recommend to
first examine the corresponding binary (/system/bin/rild ?) what's going
on at address 0xb7b02758.

> last mail, Stefan said:
>>well, from the log I only can see, there is probably still a thread that
>>exceeds its stack. You can enter the kernel-debugger yourself (pressing
>>ESC in the serial terminal), and press "lp" to show the process list.
>>One thread will wait for the pager of the system, thereby you can
>>identify the component that raised the fault.
> How to decide which thread is waiting for the pager of the system? 

You've to distinct L4Linux processes here from native L4 processes. As I
said, above error message comes from the Linux kernel. The
para-virtualized L4Linux kernel uses a special feature of the Fiasco.OC
kernel, namely the VCPU, to implement its own scheduling, and exception
mechanisms. A virtual CPU, or short VCPU, is a special thread. When
associated with Fiasco.OC IRQ objects, its execution can be interrupted.
Moreover, it's possible to run one and the same VCPU in different
address spaces (L4 tasks). Therefore, VCPUs enable implementation of CPU
virtualization in L4Linux, more easily and effectively in contrast to
the formerly used model, where all Linux processes where mapped to L4
threads.
As a consequence, all Linux threads (including kernel threads) that run
on top of the same CPU in Linux are seen as one and the same thread in
the Fiasco.OC kernel debugger. Thereby the Fiasco.OC kernel debugger
mostly isn't the right place to debug Linux userland problems.

Instead you should either try the Android Debug Bridge, or strace, gdb
etc. from within your Android initramfs. If that all doesn't help, you
might instrument the L4Linux kernel to find out what happens.

> Do you have some help doc for debugging? 

I'm afraid no we haven't. In fact we're just users of the Fiasco.OC
kernel too. The actual development of the Fiasco.OC and L4Linux kernel
isn't done by the Genode community, but by TU-Dresden and the l4-hackers
community. Nevertheless, AFAIK there isn't such a document available.

> 
> By the way, You can see my log in attachment.
> 
> thanks.
> 
> 
> 
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> 
> 
> 
> _______________________________________________
> Genode-main mailing list
> Genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

-- 
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ · http://genode.org/




More information about the users mailing list