Hi,
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Here's the error output:
===================================================================== tftp | File not found: "(nd)/fiasco/ds/vmlinuz-slave.l4env" exec | vmlinuz-slave.l4env: Error -8 (item not found) from file provider, exec : path was "(nd)/fiasco/ds". DMphys | [7.0] dm_phys/server/src/close.c:130:if_l4dm_generic_close_component( DMphys : ): DMphys | DMphys: client B.02 does not own dataspace 113 (owner is F.02) exec | [B.2] dm_generic/lib/clientlib/src/close.c:58:l4dm_close(): exec | libdm_generic: close dataspace 113 at 7.00 failed (ret -17, exc 0)! loader | vmlinuz-slave.l4env: Error -8 (item not found) while loading loader | ==> App successfully purged =====================================================================
Here is my grub.conf entry:
===================================================================== title Fiasco + Con + L4Linux [3 VMs] kernel (nd)/fiasco/ds/rmgr -sigma0 task modname "L4Linux task" modaddr 0x02000000 module (nd)/fiasco/ds/fiasco -nowait -nokdb -nofancy -serial -comspeed 115200 -comport 1 module (nd)/fiasco/ds/sigma0 module (nd)/fiasco/ds/names module (nd)/fiasco/ds/log module (nd)/fiasco/ds/dm_phys module (nd)/fiasco/ds/l4io --noirq module (nd)/fiasco/ds/tftp -i -s 192.168.1.253 module (nd)/fiasco/ds/simple_ts module (nd)/fiasco/ds/l4exec module (nd)/fiasco/ds/name_server module (nd)/fiasco/ds/con --l4io module (nd)/fiasco/ds/loader (nd)/fiasco/ds/con.cfg (nd)/fiasco/ds/l4linux-nsrd.cfg (nd)/fiasco/ds/l4linux-slave.cfg (nd)/fiasco/ds/l4linux-slave.cfg vbeset 0x117 =====================================================================
l4linux-slave.cfg looks like this:
===================================================================== verbose 2 modpath "(nd)/fiasco/ds" task "vmlinuz-slave.l4env" "l4irqack=linux mem=64M load_ramdisk=1 ramdisk_size=32768 root=/dev/ram0 ro l4env_rd=(nd)/fiasco/ds/nsrd.gz" priority 0xA0 =====================================================================
Thanks, Derick
Hi Derick,
On Tuesday 10 May 2005 11:01, Derick Swanepoel wrote:
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Hmm, no idea. Has your L4Linux a driver for your network card included (it should not). Please post the full log file.
Frank
On 5/10/05, Frank Mehnert fm3@os.inf.tu-dresden.de wrote:
Hi Derick,
On Tuesday 10 May 2005 11:01, Derick Swanepoel wrote:
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Hmm, no idea. Has your L4Linux a driver for your network card included (it should not). Please post the full log file.
The kernel used for the master VM has a driver for my network card, but the two slave kernels do not. Note that everything works fine if I start one master and one slave, or two slaves, but not one master and two slaves.
However, sometimes it does work, but very infrequently.
I've attached the boot log (it's very long and somewhat hard to make sense of because the messages of the master and slave kernel are interleaved :( )
Thanks, Derick
On Tuesday 10 May 2005 12:18, Derick Swanepoel wrote:
On 5/10/05, Frank Mehnert fm3@os.inf.tu-dresden.de wrote:
On Tuesday 10 May 2005 11:01, Derick Swanepoel wrote:
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Hmm, no idea. Has your L4Linux a driver for your network card included (it should not). Please post the full log file.
The kernel used for the master VM has a driver for my network card, but the two slave kernels do not. Note that everything works fine if I start one master and one slave, or two slaves, but not one master and two slaves.
However, sometimes it does work, but very infrequently.
This is exactly what I mean. If your master L4Linux instance grabs the network card, the tftp task owns the network card no longer and therefore is not able to load something. Note that tftp and L4Linux access the same hardware device. This works as long as they do it sequentially.
To overcome this problem, you could load the slave L4Linux instances with grub, pass them to the bmodfs server and then start them using the bmodfs server (see generic_fprov/examples/bmodfs).
I've attached the boot log (it's very long and somewhat hard to make sense of because the messages of the master and slave kernel are interleaved :( )
Hmm. According that log it seems that the master L4Linux instance initialized the netword card just while loading the seconds slave instance, eth0 of Linux is up immediately after the tftp failed.
The right solution for this is to use only _one_ driver for your network device and to share the driver between tftp and L4Linux. Both tftp and L4Linux should also support the oshkosh backend.
Or you don't use tftp at all and load the binaries using bmodfs (maybe this is easier to setup).
Frank
On 5/10/05, Frank Mehnert fm3@os.inf.tu-dresden.de wrote:
On Tuesday 10 May 2005 12:18, Derick Swanepoel wrote:
On 5/10/05, Frank Mehnert fm3@os.inf.tu-dresden.de wrote:
On Tuesday 10 May 2005 11:01, Derick Swanepoel wrote:
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Hmm, no idea. Has your L4Linux a driver for your network card included (it should not). Please post the full log file.
The kernel used for the master VM has a driver for my network card, but the two slave kernels do not. Note that everything works fine if I start one master and one slave, or two slaves, but not one master and two slaves.
However, sometimes it does work, but very infrequently.
This is exactly what I mean. If your master L4Linux instance grabs the network card, the tftp task owns the network card no longer and therefore is not able to load something. Note that tftp and L4Linux access the same hardware device. This works as long as they do it sequentially.
To overcome this problem, you could load the slave L4Linux instances with grub, pass them to the bmodfs server and then start them using the bmodfs server (see generic_fprov/examples/bmodfs).
I've attached the boot log (it's very long and somewhat hard to make sense of because the messages of the master and slave kernel are interleaved :( )
Hmm. According that log it seems that the master L4Linux instance initialized the netword card just while loading the seconds slave instance, eth0 of Linux is up immediately after the tftp failed.
The right solution for this is to use only _one_ driver for your network device and to share the driver between tftp and L4Linux. Both tftp and L4Linux should also support the oshkosh backend.
Or you don't use tftp at all and load the binaries using bmodfs (maybe this is easier to setup).
Thanks, I used bmodfs and it works.
One last question: is there a way to ensure that the modules loaded using bmodfs start in a certain order? At the moment my slave L4Linux instances start before the master and "run" starts somewhere in between.
Thanks, Derick
On Wednesday 11 May 2005 08:53, Derick Swanepoel wrote:
One last question: is there a way to ensure that the modules loaded using bmodfs start in a certain order? At the moment my slave L4Linux instances start before the master and "run" starts somewhere in between.
The boot order depends on the order the config scripts are passed to the loader. It might help if you put a config script in between two L4Linux config scripts that contains the line
sleep 3s
Then the loader waits for 3 seconds giving the running tasks a chance to complete their boot process. To force a boot order you would have to add some dependencies (e.g. add an IPC call from both slave L4Linux to master L4Linux instance).
Frank
Derick Swanepoel wrote:
Hi,
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Here's the error output:
===================================================================== tftp | File not found: "(nd)/fiasco/ds/vmlinuz-slave.l4env" exec | vmlinuz-slave.l4env: Error -8 (item not found) from file provider, exec : path was "(nd)/fiasco/ds". DMphys | [7.0] dm_phys/server/src/close.c:130:if_l4dm_generic_close_component( DMphys : ): DMphys | DMphys: client B.02 does not own dataspace 113 (owner is F.02)
isn't this a problem of overlapping???
tiago
On 5/10/05, Tiago Jorge tjpj@lasige.di.fc.ul.pt wrote:
Derick Swanepoel wrote:
Hi,
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Here's the error output:
===================================================================== tftp | File not found: "(nd)/fiasco/ds/vmlinuz-slave.l4env" exec | vmlinuz-slave.l4env: Error -8 (item not found) from file provider, exec : path was "(nd)/fiasco/ds". DMphys | [7.0] dm_phys/server/src/close.c:130:if_l4dm_generic_close_component( DMphys : ): DMphys | DMphys: client B.02 does not own dataspace 113 (owner is F.02)
isn't this a problem of overlapping???
I don't understand, what do you mean by "overlapping"?
Derick Swanepoel wrote:
On 5/10/05, Tiago Jorge tjpj@lasige.di.fc.ul.pt wrote:
Derick Swanepoel wrote:
Hi,
I'm trying to start three VMs from grub (one master and two slaves), but the tftp provider fails to load the third kernel. This file is the same as the second VM's kernel, which loads successfully.
Here's the error output:
===================================================================== tftp | File not found: "(nd)/fiasco/ds/vmlinuz-slave.l4env" exec | vmlinuz-slave.l4env: Error -8 (item not found) from file provider, exec : path was "(nd)/fiasco/ds". DMphys | [7.0] dm_phys/server/src/close.c:130:if_l4dm_generic_close_component( DMphys : ): DMphys | DMphys: client B.02 does not own dataspace 113 (owner is F.02)
isn't this a problem of overlapping???
I don't understand, what do you mean by "overlapping"?
modules that own other mudules memory dataspace... i've only said that because of this error that happens to me when modules sometimes overlap
"DMphys: client B.02 does not own dataspace 113 (owner is F.02)"
tiago
l4-hackers@os.inf.tu-dresden.de