Hi there,
is it possible to allow I/O page mapping at the RMGR for a newly created task (using l4_task_new) as it were possible using the "allow_cli" flag in the roottask configuration? Usually the pager of the newly created task would handle its I/O pagefaults. Unfortunately this won't work here as this particular task (L4 loader) tries to directly map I/O pages using an IPC call to the ressource manager. So the question is: How can I tell the ressource manager to allow I/O mapping for this particular task?
Thanks, Daniel
Hi,
On Thu Jan 11, 2007 at 22:25:56 +0100, Daniel Vandersee wrote:
is it possible to allow I/O page mapping at the RMGR for a newly created task (using l4_task_new) as it were possible using the "allow_cli" flag in the roottask configuration? Usually the pager of the newly created task would handle its I/O pagefaults. Unfortunately this won't work here as this particular task (L4 loader) tries to directly map I/O pages using an IPC call to the ressource manager. So the question is: How can I tell the ressource manager to allow I/O mapping for this particular task?
The loader can be configured to allow only specific ports for specific applications. roottask just gives them out, so it already does this?!
Adam
Adam Lackorzynski wrote:
On Thu Jan 11, 2007 at 22:25:56 +0100, Daniel Vandersee wrote:
is it possible to allow I/O page mapping at the RMGR for a newly created task (using l4_task_new) as it were possible using the "allow_cli" flag in the roottask configuration? Usually the pager of the newly created task would handle its I/O pagefaults. Unfortunately this won't work here as this particular task (L4 loader) tries to directly map I/O pages using an IPC call to the ressource manager. So the question is: How can I tell the ressource manager to allow I/O mapping for this particular task?
The loader can be configured to allow only specific ports for specific applications. roottask just gives them out, so it already does this?!
Yes, of course, but it seems that the loader is not allowed to map an I/O page (task #d2 is the L4 loader):
ROOT: Task #d2 is not allowed to execute cli/sti D2.03:loader | linux_drivers,#10: Can't map I/O space, ROOT denies page (result=0000 D2.03:loader : 4000)
IMO this is because the loader was not started with the "allow_cli" flag turned on. The loader was started by another server (using l4_task_new) - not by the roottask.
Daniel
On Fri Jan 12, 2007 at 00:12:46 +0100, Daniel Vandersee wrote:
Adam Lackorzynski wrote:
On Thu Jan 11, 2007 at 22:25:56 +0100, Daniel Vandersee wrote:
is it possible to allow I/O page mapping at the RMGR for a newly created task (using l4_task_new) as it were possible using the "allow_cli" flag in the roottask configuration? Usually the pager of the newly created task would handle its I/O pagefaults. Unfortunately this won't work here as this particular task (L4 loader) tries to directly map I/O pages using an IPC call to the ressource manager. So the question is: How can I tell the ressource manager to allow I/O mapping for this particular task?
The loader can be configured to allow only specific ports for specific applications. roottask just gives them out, so it already does this?!
Yes, of course, but it seems that the loader is not allowed to map an I/O page (task #d2 is the L4 loader):
ROOT: Task #d2 is not allowed to execute cli/sti D2.03:loader | linux_drivers,#10: Can't map I/O space, ROOT denies page (result=0000 D2.03:loader : 4000)
IMO this is because the loader was not started with the "allow_cli" flag turned on. The loader was started by another server (using l4_task_new)
- not by the roottask.
Ok, you need to start the loader with alloc_cli because the current implementation of the loader requires this. There usually is a feature in roottask that allows to register attributes for tasks that will be started later (i.e. not by roottask) but that is currently nonworking. So the answer is that this probably won't work without putting some effort in roottask and/or loader.
Adam
l4-hackers@os.inf.tu-dresden.de