Errors when adding part_blk to sculpt scenario

Boris Mulder boris.mulder at nlcsl.com
Fri May 11 15:18:14 CEST 2018


Hello,

In an experiment I tried making some modifications to sculpt on staging,
most notably moving the file system stack onto the bottom-level init.
However, opening block sessions with the drivers subsystem fails.

Simply said, if I add another part_blk component to sculpt.run as a
child of init, and try to connect its Block-session to the drivers
subsystem, I get the following error:

|Error: init -> drivers: attempt to transfer initial quota||
||Warning: PD (init -> drivers) RAM limit (used=776K, limit=1089025)
exceeded during transfer_quota(4207020)||
||[init] child "drivers" requests resources: ram_quota=4207020||
||Error: init -> drivers: attempt to transfer initial quota||
||Warning: PD (init -> drivers) RAM limit (used=776K, limit=1089025)
exceeded during transfer_quota(4207020)||
||[init] child "drivers" requests resources: ram_quota=4207020||
||Error: init -> drivers: attempt to transfer initial quota||
||Warning: PD (init -> drivers) RAM limit (used=776K, limit=1089025)
exceeded during transfer_quota(4207830)||
||[init] Warning: part_blk: could not revert session RAM quota
(service=Block cid=6 args='tx_buf_size=4194304, cap_quota=5,
label="part_blk -> ", ram_quota=4207830, diag=0' state=SERVICE_DENIED
ram_quota=4207830, cap_quota=5)||
||[init -> part_blk] Error: Block-session creation failed
(ram_quota=4208640, cap_quota=5, tx_buf_size=4194304, label="")||
||[init -> part_blk] Error: Uncaught exception of type
'Genode::Service_denied'||
||[init -> part_blk] Warning: abort called - thread: ep||
||[init] child "part_blk" exited with exit value 1|

When I run part_blk in the normal fs runtime with fs.config and
default_fs_subinit.config (with part_blk not commented out), it works
fine. Of course I do not run both at the same time, as the ahci_drv only
supports one client at a time.

The config snippet I added to sculpt.run just below the drivers init
looks as follows (I copied it from default_fs_subinit.config except that
my computer has an MBR partition scheme):

|    <start name="part_blk" caps="100">||
||        <resource name="RAM" quantum="10M"/>||
||        <provides><service name="Block"/></provides>||
||        <config use_gpt="no">||
||            <policy label_prefix="vfs" writeable="yes" partition="1"/>||||
||        </config>||
||        <route>||
||            <service name="Block"> <child name="drivers"
label="default"/> </service>||
||            <any-service> <parent/> </any-service>||
||        </route>||
||    </start>|

I tried giving part_blk more RAM, giving "drivers" more RAM, giving
"drivers -> dynamic" more RAM and giving "drivers -> dynamic ->
ahci_drv" more as well (by editing the driver_manager), but the error
message persists with the same numbers as above.

Now I'm stuck on why this error occurs. One possibility is that the
driver_manager has not yet loaded the correct policies for the ahci_drv
or the config of the subinit and that it has updated them when I change
the runtime config to run part_blk. However, I get no other errors,
while I would have expected "no matching policy" or "no route" in that case.

I tried creating a clean run script with only the drivers_managed-pc
package and part_blk inside it. It gives me the same error so it seems
to be related to the drivers_managed-pc subsystem. When I run all those
drivers directly on top of init, I do not get the error.

Can anyone explain what is going on?

-- 

Met vriendelijke groet / kind regards,

Boris Mulder

Cyber Security Labs B.V. | Gooimeer 6-31 | 1411 DD Naarden | The Netherlands
+31 35 631 3253 (office)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20180511/d792fa32/attachment.html>


More information about the users mailing list