Hi
How does one kill L4linux from the DROPS console using the loader program? This is what I am currently doing: 1:I type 'n' at the DROPS console to get task ID's and names. This is what I get: . . F.02 LOADER 12.03 Linux server . . 2. I type 'k' and then '12', and I get: 'Error -11 (not owner) killing task #12'.
Any ideas?
The aim is ultimately to correctly halt/reboot l4linux from l4linux's own shutdown code.
Regards Gordon
On Mon May 16, 2005 at 06:03:09 -0700, gjoel123@fastmail.fm wrote:
How does one kill L4linux from the DROPS console using the loader program? This is what I am currently doing: 1:I type 'n' at the DROPS console to get task ID's and names. This is what I get: . . F.02 LOADER 12.03 Linux server . . 2. I type 'k' and then '12', and I get: 'Error -11 (not owner) killing task #12'.
Yes, there's a somewhat strict checking in there right now, I guess we need to look at this to make this working in run again, somehow.
If you start L4Linux from within run the kill function should work.
The aim is ultimately to correctly halt/reboot l4linux from l4linux's own shutdown code.
It does that for me without problems, at least with 2.6.
Adam
Hi
I have gotten past the problem by adding the loader's "kill" code to l4linux2.4's shutdown code: this avoids the permission problems (a thread is allowed to kill itself). I can halt l4linux completely by calling "halt" from bash. Thanks for your insight.
However, it seems like the memory manager does not correctly de-allocate memory: After starting and halting l4linux about 7 times, the next time I load l4linux, I get DMphys | [7.0] dm_phys/server/src/pages.c:1148:dmphys_pages_allocate(): DMphys | DMphys: no memory, size 65536KB, left 44968KB DMphys | [7.0] dm_phys/server/src/open.c:97:__create_ds(): DMphys | DMphys: memory allocation failed! l4lx | [12.3] dm_mem/lib/clientlib/src/open.c:79:l4dm_mem_open(): l4lx | libdm_mem: open dataspace at 7.00 failed (ret -2, exc 0) l4lx | setup_l4env_memory: Can't get main memory: out of memory(-2)!
Every time I halt an l4linux, I still see it's info when I hit 'a' in the DROPS console: . . "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end
Any ideas? Is there a known bug in the memory manager?
Regards Gordon Joel
On Mon, 16 May 2005 16:04:50 +0200, "Adam Lackorzynski" adam@os.inf.tu-dresden.de said:
On Mon May 16, 2005 at 06:03:09 -0700, gjoel123@fastmail.fm wrote:
How does one kill L4linux from the DROPS console using the loader program? This is what I am currently doing: 1:I type 'n' at the DROPS console to get task ID's and names. This is what I get: . . F.02 LOADER 12.03 Linux server . . 2. I type 'k' and then '12', and I get: 'Error -11 (not owner) killing task #12'.
Yes, there's a somewhat strict checking in there right now, I guess we need to look at this to make this working in run again, somehow.
If you start L4Linux from within run the kill function should work.
The aim is ultimately to correctly halt/reboot l4linux from l4linux's own shutdown code.
It does that for me without problems, at least with 2.6.
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
On Tue May 17, 2005 at 02:51:47 -0700, gjoel123@fastmail.fm wrote:
I have gotten past the problem by adding the loader's "kill" code to l4linux2.4's shutdown code: this avoids the permission problems (a thread is allowed to kill itself). I can halt l4linux completely by calling "halt" from bash. Thanks for your insight.
Another simple solution is just falling out of the main function. 2.6 uses that to exit.
However, it seems like the memory manager does not correctly de-allocate memory: After starting and halting l4linux about 7 times, the next time I load l4linux, I get DMphys | [7.0] dm_phys/server/src/pages.c:1148:dmphys_pages_allocate(): DMphys | DMphys: no memory, size 65536KB, left 44968KB DMphys | [7.0] dm_phys/server/src/open.c:97:__create_ds(): DMphys | DMphys: memory allocation failed! l4lx | [12.3] dm_mem/lib/clientlib/src/open.c:79:l4dm_mem_open(): l4lx | libdm_mem: open dataspace at 7.00 failed (ret -2, exc 0) l4lx | setup_l4env_memory: Can't get main memory: out of memory(-2)!
Every time I halt an l4linux, I still see it's info when I hit 'a' in the DROPS console: . . "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end "vmlinuz-slave.l4env",#12 0 ds 70: 003ff000-0067e000 r-x beg ds 71: 0067e000-00a5000 rwx ds 72: 00a6000-007880000 rwx ds 73: 007880000-00789000 r-- end 1 ds 74: 0000e000-0002e000 r-x share beg ds 75: 0002e000-00034000 rw- share end
Any ideas? Is there a known bug in the memory manager?
Not really. There's a server called 'events' that listens for 'exit' events and notifies all servers to free their resources, including dm_phys. When using it memory is supposed to free up and the l4linux entry in the list should disappear.
To use it start events as the first server and add an --events argument to names, dm_phys, simple_ts, con and loader.
Adam
l4-hackers@os.inf.tu-dresden.de