On 20.8.2013 9:15, Darren Shepherd wrote:> I''m really interested in openmirage, erlang on xen, mini-os, rump
kernels (just saw that today), or anything that runs directly on xen. I think
there''s a huge potential and use case with these technologies.
>
> I have a random question though. I''ve only seen these type of
things running on Xen. Is there any specific reason you don''t see much
on KVM? Maybe they exist and I just haven''t seen them. I was just
curious if there was something specific to Xen''s architecture that made
these framework easier to develop.
Hi,
I can only speak for work I''ve been involved with, so the following is
about rump kernels.
Let''s start by putting the capability of running rump kernels on top of
Xen into perspective. Support was a handful of lines of code and a few
days of work. This should first of all be contrasted to the 6+ years of
work on rump kernels. Second, given that rump kernels are about
bringing drivers which have been "trapped" inside a monolithic kernel
to
other environments without having to modify the drivers, there''s really
30+ years of code history at play with rump kernels. The fact that it
was quick and easy to make work suggests both that it is easy to plug
non-traditional OS''s on top of Xen (or on top of mini-os at any rate),
and that the anykernel (which is the kernel architecture which makes
rump kernels possible) is a working idea. Now, the good thing about
doing work in small pieces, such as the one in question here, is that
you don''t have to think/evaluate too much before starting -- if it
turns
out to be a bad idea, just toss it in the bucket and try to get another
small piece right.
My underlying motivation for this work was to get rump kernels running
on some environment without preemptively scheduled threads; long story
short: it will help gain a better understanding of optimal scheduling
for high-performance rump kernels in userspace. At some point I''ll
translate the lessons learned from this into sched_setparam()s and
sched_yield()s -- unless Xen proves to be a better platform to high
performance "userspace" drivers. Fundamentally, here we''re
talking
about using rump kernels as exokernels. However, "exokernel" as a
term
probably has too much historical ballast, so I think I''ll use
"jinba
ittai" to describe that runtime model from now on.
Finally, getting to your actual question, I picked Xen because 1) I''d
had discussions without various folks about running rump kernels on top
of Xen 2) the Linux distro I used to do the work (Void Linux) has great
Xen support. To be honest, I didn''t even consider KVM before starting
the work. For all I know, it might have been better. But thinking
about it now, a rump kernel is all about paravirtualization, so KVM does
sound like a tool that''s optimizing for the case that I''m not
interested in.
- antti