Virtio Drivers on Dragonfly

Michael Neumann mneumann at ntecs.de
Tue Oct 5 11:17:21 PDT 2010


Am Dienstag, den 05.10.2010, 17:11 +0000 schrieb Pratyush:
> Pratyush <pratyush.kshirsagar <at> gmail.com> writes:
> 
> > 
> > Hello Everyone,
> > 
> > As the Proportional RSS project is on its verge of completion and added to
> > dragonfly. I request you guys to grant me permission to move forward with
> > implementation of virtio drivers on dragonfly. If a member among us is doing
> > this project, I will go for another. 
> > 
> > I would like to do the virtio project with one of my friend (Sandip Jadhav - CS
> > Grad Student Binghamton University ), he too is in dragonfly kernel mailing
> > list. This project can give us exposure to device drivers in dragonfly and also
> > can convert our conceptual knowledge of virtio to some practical length. I
> > thought of doing in a group, so that we can move with a pace suitable for
> > further contributions to dragonfly.
> > 
> > Thank You,
> > Pratyush
> > <pratyush.kshirsagar [at] gmail.com>
> > Feeling Lucky to be a member of DragonFly Family :)
> > 
> > 
> 
> 
> I thought that after being on a track with virtio drivers, I will go with doing
> some work on check pointing vkernel. After that we can move forward with vkernel
> migration using opportunistic replay approach as we have the checkpoints
> generated. But all this depends on your guidance, I can go the way you guys
> suggest. 

Actually, I have asked Matt about vkernel checkpointing recently as I
have huge interest in being able to suspend to disk or migrate vkernels
to other machines. I thought that one had to modify the kernel to
support checkpointing of multiple vmspaces (which the vkernel makes use
of), and which is currently not supported (actually doesn't sound too
complicated), but Matt said that it should be possible to do without any
modification of the real kernel. One would have to teach the vkernel to
catch the SIGCKPT and to collect and save the vpagetable information for
the vkernel-processes together with configuration information like
network device and console, and to restore it upon SIGTHAW.

I might take a stab at it after my exam on Monday.

Being able to checkpoint vkernels would enable us to migrate a running
vkernel within a few seconds to another box, e.g. for the purpose of
CPU/network load-balancing, or to save energy by employing VaryOn/Off
strategies, i.e. shutting down servers with too little load. The whole
consolidation/virtualization buzz would find it's way into
DragonFly :). 

Another great application of vkernels could be for laptops. Imagine your
laptop runs on DragonFly, and your host kernel is running a X11 display
server, while all your X11 clients run inside the vkernel. This enables
you to checkpoint the vkernel, shut down the laptop, and to later
restore where you left off (assuming X11 doesn't keep state on the
X11-server).

I also think that vkernel checkpointing is a great feature for virtual
hosting. Especially combined with swapcache, one could run a huge number
of vkernels on a single machine, giving each enough main memory, backed
by a SSD. Whether it performs well is another question :)

Regards,

  Michael






More information about the Kernel mailing list