Re: hello world roottask fails to run

Alex Webster <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <1149218056.18875.55.camel@terminus>
Hi,

I was able to build hello-project--devel--1.1 for machine=pleb and run
it in skyeye.  Can you send more details?  In particular the machine you
are targeting and the versions of the various tools you are using (gcc,
scons, skyeye)?


Alex

On Sun, 2006-05-28 at 20:55 +0100, bahadir balban wrote:
> Hi,
> 
> I have an almost-booting hello world system using NICTA:Pistachio
> hello-project--devel--1.1--patch-1 on an ARM system. The problem is
> that Sigma0 runs but L4_Receive() (for page faults) never returns.
> Because of that, the hello roottask's pages are never mapped upon a
> page fault. The kernel does send a pagefault ipc for the roottask when
> the first page is accessed, but the ipc is never concluded because
> neither sigma0 nor the roottask is in "waiting" state, which seems to
> be a requirement for the ipc to occur. The output is down below, but
> note the following:
> 
> >From SYS_IPC():
> dest not ready (roottask, is_wt=0)
> dest not ready (sigma0, is_wt=0)
> 
> where is_wt=0 means "Not in waiting state". Also find_next_thread()
> dequeues these processes from the runqueue because they're not
> runnable but in POLLING state. From then on they never get their
> states "runnable" or "waiting" and it's always the idle thread
> running. Have you come across this problem or can guess why the ipc
> does not occur with success? How should the polling state normally
> change to either running or waiting?
> 
> Many thanks,
> Bahadir
> 
> 
> ...
> Switching to idle thread (CPU 0)
> system has 64 interrupts
> Initializing root servers
> root-servers: utcb_area: cff00100 (64KB), kip_area: ff000000 (0KB)
> Creating sigma0 (handle_pagefault: idle: kernel pagefault in space
> f0018000 @ e00300a0, ip=f000ec38,
>  type=0
> 00180001)
> Created sigma 0 with success.
> Set sigma0 pc to 530000
> Set sigma0 sp to 0
> creating root server (handle_pagefault: idle: kernel pagefault in
> space f0018000 @ e00310a0, ip=f000
> ec38, type=0
> 00188001)
> Set roottask pc to 540000
> Set roottask sp to 0
> idle thread started on CPU 0
> find_next_thread: Chosen to run: sigma0
> schedule: Current: idle, Found: sigma0
> switch_to: Switching to: sigma0
> handle_pagefault: sigma0: user execute pagefault at 00530000, ip=00530000
> handle_pagefault: Establishing a mapping in sigma0's space.
> handle_pagefault: sigma0: user execute pagefault at 005314ac, ip=005314ac
> handle_pagefault: Establishing a mapping in sigma0's space.
> handle_pagefault: sigma0: user read pagefault at 0053bb74, ip=005314b0
> handle_pagefault: Establishing a mapping in sigma0's space.
> handle_pagefault: sigma0: user read pagefault at 005338bc, ip=005318f8
> handle_pagefault: Establishing a mapping in sigma0's space.
> handle_pagefault: sigma0: user execute pagefault at 00532af8, ip=00532af8
> handle_pagefault: Establishing a mapping in sigma0's space.
> This is sigma0 printing...
> Sigma0 pagefault server has started...
> sigma0_server: Only talking to tid: 0x8001 (roottask?)
> L4_Receiving()...
> SYS_IPC: current: sigma0, to_tid: roottask, from_tid: roottask, tag:
> 0xffb0c005 (label=0xffb0, SRap,
>  u=5, t=0)
> send phase curr=sigma0, to=roottask
> dest not ready (roottask, is_wt=0)
> find_next_thread: Dequeuing sigma0 in state: POLLING
> find_next_thread: Chosen to run: roottask
> switch_to: Switching to: roottask
> handle_pagefault: roottask: user execute pagefault at 00540000, ip=00540000
> handle_pagefault: Sending pagefault ipc.
> SYS_IPC: current: roottask, to_tid: sigma0, from_tid: sigma0, tag:
> 0xffe1c002 (label=0xffe1, SRap, u
> =2, t=0)
> send phase curr=roottask, to=sigma0
> dest not ready (sigma0, is_wt=0)
> find_next_thread: Dequeuing roottask in state: POLLING
> switch_to: Switching to: idle
> schedule: Current: idle, Found: idle
> schedule: Current: idle, Found: idle
> schedule: Current: idle, Found: idle
> schedule: Current: idle, Found: idle
> ...
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.