Testing Luvalley with FreeBSD as dom0

Brandon Gooch jamesbrandongooch at gmail.com
Mon Apr 19 01:29:23 UTC 2010


On Sun, Apr 18, 2010 at 5:54 PM, Xiaodong Yi <xdong.yi at gmail.com> wrote:
> Hi, dear all,
>
> First, I would like to thank Juergen for his long-time hard work on
> porting and testing Luvalley/Qemu stuff to let it run with FreeBSD.
>
> As said by Juergen, Luvalley is designed to enable arbitrary operating
> system to utilize the hardware virtualization extensions to host
> virtual machines as pure userland applications. That is to say, in
> theory, Luvalley may run arbitrary OS as the so-called dom0 OS and
> then host multiple guests/domU OSs on top of it. Luvalley neither
> modify OS kernels, nor insert modules into the OS kernel. The
> virtualized guests/domU OSs are executed as userland applications by
> the modified Qemu.
>
> I am very glad that Juergen introduced Luvalley to the FreeBSD
> society. We hope you like the idea of it. And we will be much more
> pleased for the feedbacks. Luvally now is only experimental and may be
> not stable or low performance. But I will continue working to improve
> it.
>
> Best regards,
>
> Xiaodong Yi
>
> 2010/4/19 Juergen Lock <nox at jelal.kn-bremen.de>:
>> Hi!
>>
>>  I had been watching the Luvalley project for a while,
>>
>>        http://sourceforge.net/projects/luvalley/files/
>>        http://sunet.dl.sourceforge.net/project/luvalley/luvalley/luvalley-7/README
>>        http://www.mail-archive.com/kvm@vger.kernel.org/msg11896.html
>>
>> and a few weeks ago I was able to run Linux and FreeBSD domU.s on a
>> Linux dom0 on my box for the first time, and then I ported a version
>> of qemu-kvm 0.12.3 that Xiaodong Yi (Luvalley author) had adapted to
>> Luvalley to FreeBSD and got that running domU.s with FreeBSD as dom0 too. :)
>>
>>  At the moment Luvalley still has major issues and is far from being
>> production-ready yet, but for FreeBSD users who want have a look for
>> themselves I've now made an experimental port of the mentioned
>> qemu-kvm-luvalley 0.12.3:
>>
>>        http://people.freebsd.org/~nox/qemu/luvalley/qemu-kvm-luvalley-0.12.3.shar
>>
>>  If you want to test it without deinstalling a qemu port you can build
>> the port with DISABLE_CONFLICTS=yes and run the Luvalley qemu-kvm from
>> within the build dir:
>>
>>        work/qemu-kvm-0.12.3/x86_64-softmmu/qemu-system-x86_64 ...
>> resp.
>>        work/qemu-kvm-0.12.3/i386-softmmu/qemu ...
>>
>>  And before I forget, your cpu needs to be amd64/x86_64/em64t (i.e.,
>> able to run 64 bit) and it needs to have Intel VT or AMD-V aka vmx or svm.
>> I only tested amd64 dom0s (Linux and FreeBSD stable/8), but afaik i386
>> dom0s are supported as well.  And this is still experimental code, it
>> may crash, eat your dog, whatever...
>>
>>  Here is the pkg-descr:
>>
>> Luvalley is a lightweight type-1 Virtual Machine Monitor (VMM) with
>> novel architecture, to enable any OS to run virtual machines by utilizing
>> hardware virtualization extensions such as Intel VT and AMD-V.
>>
>> This is an experimental port of qemu-kvm adapted to Luvalley by
>> Xiaodong Yi (Luvalley author - files/patch-luvalley) and preliminary
>> patched for FreeBSD my me (nox, files/patch-z-kvm-bsd) so that FreeBSD
>> can run domU (guests) using Luvalley.  Luvalley still has many limitations
>> and is definitely far from being production-ready, but it already seems
>> to be able to run domUs partway faster than kqemu with -kernel-kqemu. :)
>> (and also works better than kqemu for amd64 domUs.)
>>
>> Note:  You need grub to boot the Luvalley `kernel',
>>
>>        http://sourceforge.net/projects/luvalley/files/luvalley/luvalley-7/luvalley/download
>>
>> which (hopefully) will then boot the first disk again from which you
>> _then_ select the FreeBSD slice for booting the FreeBSD loader and
>> kernel to run as Luvalley dom0 if you want to test this port.  More info
>> is here:
>>
>>        http://sunet.dl.sourceforge.net/project/luvalley/luvalley/luvalley-7/README
>>
>> Since FreeBSD users rarely have a grub installed I've made a grub iso
>> with a menu.lst configured to boot the Luvalley `kernel' from /boot/luvally
>> on the root of the first FreeBSD slice on the first disk (if your FreeBSD
>> install is elsewhere you have to either edit the grub menu entry on the fly
>> using grub's `e'dit command or unpack the iso using e.g. bsdtar, edit the
>> menu.lst, and then make a new iso, see the README.txt within the iso.)
>>
>>        http://people.freebsd.org/~nox/qemu/luvalley/grub-luvalley.iso
>>
>> If you have a working serial port (`COM1' aka /dev/tty[du]0) you can try
>> to catch Luvalley's debug messages (115200bps, 8N1), this is especially
>> useful should Luvally crash, otherwise there's probably no chance to
>> fix the bug.  One known crash at the moment happens when Luvalley runs
>> out of ioctl object slots of which by default there are only 32
>> ("IOCTL_SIZE" in the Luvalley source, I haven't tried to build that on
>> FreeBSD yet) and atm they never get released so in practice for the moment
>> you should reboot your dom0 (FreeBSD) after running a few domUs to avoid
>> that crash.  Another known problem is atm when a domU shuts down the
>> luvally qemu will hang and you have to manually kill it.
>>
>> WWW: http://sourceforge.net/projects/luvalley/files/
>>

Wow, this definitely looks awesome!

I'm excited to try this out, and I hope we see the community get
behind this effort with testing and patches.

Thank you for the introduction Xiaodong Yi, and as always a big thanks
to Juergen Lock for his work with Qemu on FreeBSD!

-Brandon


More information about the freebsd-emulation mailing list