Liblor / advanced_operating_systems_2020

Advanced Operating System Course at ETHZ
MIT License
19 stars 4 forks source link

Forge frames #117

Closed Liblor closed 4 years ago

Liblor commented 4 years ago

Edit: This problem is fixed by starting the lmp servers. See latest commit. However, it looks like we are now stuck in the paging module...


Forges frames as discussed yesterday. However, we know have the following problem, when spawning a new dispatcher on core 1:

armv8/sbin/init.1.0: waiting for UrpcMasterData
armv8/sbin/init.1.0: got UrpcMasterData
armv8/sbin/init.1.0: got BootInfo
armv8/sbin/init.1.0: app_urpc_init_memsys
armv8/sbin/init.1.0: base[12]: 0x80adb000
armv8/sbin/init.1.0: bytes[12]: 2063085568 bytes
armv8/sbin/init.1.0: base: 0x80adb000
armv8/sbin/init.1.0: bytes: 2063085568 bytes
armv8/sbin/init.1.0: Added 983 MB of physical memory.
armv8/sbin/init.1.0: name is: /armv8/sbin/hello
kernel 1: ARMv8-A: Timer interrupt received!
kernel 1: user page fault in 'armv8/sbin/init': addr 0x8000ad300c IP 0x42f554
armv8/sbin/init.1.0: Disp armv8/sbin/init.1: /source//lib/spawn/spawn.c, setup_dispatcher, 405
armv8/sbin/init.1.0: cap_copy() failed: Error looking up source capability
armv8/sbin/init.1.0: setup_dispatcher() failed: Failure in cap_copy()
armv8/sbin/init.1.0: spawn_load_argv() failed: Failure in spawn_setup_dispatcher
ERROR: armv8/sbin/init.1 in app_urpc_init_memsys() /source//usr/init/main.c:326
ERROR: in event_dispatch
Failure: (          spawn) Failure while loading [SPAWN_ERR_LOAD]
Failure: (          spawn) Failure in spawn_setup_dispatcher [SPAWN_ERR_SETUP_DISPATCHER]
Failure: (         libaos) Failure in cap_copy() [LIB_ERR_CAP_COPY]
Failure: (         kernel) Error looking up source capability [SYS_ERR_SOURCE_CAP_LOOKUP]
Failure: (         kernel) Capability not found (empty slot encountered) [SYS_ERR_CAP_NOT_FOUND]
Aborted
armv8/sbin/init.1.0: libc exit NYI!

The cap_copy that fails is on line 405 in lib/spawn/spawn.c. This is probably because we don't have a LMP server on the second core.

Liblor commented 4 years ago

Adding the lmp servers into app_urpc_init_memsys seems to fix the problem. However, there are no signs of life of the spawned process except a pagefault... i.e. nothing is printed :(