Hi,

I apologize in advance for the fuzzy details, but I'm hoping someone can ask the right questions to provide that missing information.

A couple of people are trying to integrate UML with a Yocto-based distribution called OpenSwitch (http://openswitch.net/). The relevant change request can be seen here:

https://review.openswitch.net/#/c/6079/

The OPS build process builds a full kernel and userspace, and Christian did a proof of concept integrating UML with that build process. Everything *seems* to be working fine, except that we are seeing strange behaviors at runtime.

Christian build the whole thing inside a VM, which has Debian 8 installed. When he tries to boot the image, everything works fine.

When I try to reproduce Christian's results, I use a computer with Debian 8 installed in it (no VM), generate the image and boot. That alone seems to work, but several components inside the system exhibit strange behavior. OPS uses systemd, and journald starts spewing out messages about not being able to write a log entry. There's another component (OVSDB) which has a helper program create a database for it at boot time, and that component is behaving in a strange manner: it reads a file to translate it into a different format, and although strace does not reveal any errors, the output file is truncated (filesystem is ext4). There's also an issue with OpenSSH generating keys at boot time, and those keys are also truncated.

We have even tried with Christian's generated image on the computer where things fail, and it stills fails. I have generate an image out of a chroot to eliminate inconsistencies between the two build environments, and as far as we can tell, everything is the same, but it still fails. Christian tried building the same thing using actual hardware (no VM), and it fails. Weird thing is that if you take that image to the VM, it works.

Perhaps we are misunderstanding how UML works. Is it possible to run kernel version X (UML) on top of kernel version Y (X > Y)? How are system calls handled? I'm asking because we found a thread where someone asked the kernel headers to be installed so that a toolchain for the target environment can be generated, but the reply back then is that "that doesn't make sense". In our case the host is running 3.16 and the UML kernel is 4.5. The VM where things work is the same.

One thing we have noticed is that when the host is not a VM, systemd says the virtualization technology is UML. When the host is the VM, systemd says the virtualization technology is vmware. Scanning the code it does not seem to be doing anything different based on that.

I can provide the binaries that I compiled and are failing upon request if you want to take a look at the error yourself.

I'm looking forward to your questions regarding this,

Marcelo

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to