[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Openmirage, erlang on xen, etc

  • To: xen-users@xxxxxxxxxxxxx
  • From: Antti Kantee <pooka@xxxxxx>
  • Date: Tue, 20 Aug 2013 13:01:36 +0300
  • Delivery-date: Tue, 20 Aug 2013 10:04:27 +0000
  • List-id: Xen user discussion <xen-users.lists.xen.org>

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.


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

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.