Re: l4/sys/syscalls.h: No such file or directory
Adam Lackorzynski <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon Sep 15, 2014 at 15:50:07 +0200, Valentin Hauner wrote: > On 09/15/2014 09:18 AM, Björn Döbel wrote: > > The trick here is that your pager needs to have the binary mapped into > > its own address space before handing it out. This can be achieved by > > accessing the binary's pages once during startup. (For convenience, > > see the l4_touch_ro() and l4_touch_rw() functions.) > > > That worked, now the warnings do not appear any more. > But it does not solve the real problem either. > > The code I've added: > > > extern char _start[], _stext[], _sdata[], _end[]; > > > > // Adapted from examples/sys/start-with-exc/main.c > > l4_touch_ro(_start, _sdata - _start + 1); > > l4_touch_rw(_sdata, _end - _sdata); > > > > // Allocating stack and setting arguments to pass ... > > > > l4_touch_rw(thread_stack[count], sizeof(thread_stack[count])); > > l4_touch_ro(t->func, 1); > > > > // Mapping the pages with l4_task_map ... > > I've tried using _stext instead of _start, but still no success. > > A simple call of > > l4_touch_ro(_stext, _end - _stext) > does not solve the issue either. I'm unsure what is the problem now. Doing the 4 l4_touch_* are the right thing to do. We should check whether there are more page faults happening. Enter jdb, then issue 'P*' (capital P) to enable page-fault logging, then 'g' for go. Let it run a second, then ESC again. Look at log with 'T' (capital T). Are there any entries? And generally, what are the threads doing? Adam -- Adam [email protected] Lackorzynski http://os.inf.tu-dresden.de/~adam/