gsoc 2011 : about virtio drivers

Aggelos Economopoulos aoiko at cc.ece.ntua.gr
Wed Feb 23 23:43:00 PST 2011


On 02/23/2011 12:42 AM, Stéphanie Ouillon wrote:
Hello,

I discovered DragonFly BSD a few weeks ago and started by running it 
following the tutorials on the site and reading around. I am a student 
in an engineer school ( networking, telecommunication fields ) and I'm 
very interested in everything in relation to OS architecture and C 
development.
Hello Stéphanie,

it's nice to see more people who are interested in the virtio project! 
And I say "more", because I have already been contacted off list by 
Thibaut Deloffre (CC'd) about the same project :-) Unfortunately, the 
GSoC wiki page is Work In Progress and you've caught us doing the last 
rehearsals before the start of the show.

The situation is as follows: Tim Bisson and Pratyush Kshirsagar spent 
some time working on a virtio driver port from NetBSD, but then changed 
direction and run into a bit of unexpected trouble: 
http://www.shiningsilence.com/dbsdlog/2011/02/17/7274.html. After 
Thibaut's mail, I contacted them privately and they've expressed their 
willingness to publish their code so that anyone can pick it up. If I 
understood correctly, neither Pratyush nor Tim plan to do further work 
(please correct me if I'm wrong!).

So I guess that means DragonFly will offer the virtio driver project in 
this year's GSoC too. Tim suggested that the project could be expanded 
to include the virtio memory baloon driver. That said, it seems that 
only one student can work on the project, so I'd advise both of you to 
have alternatives ready. I can recommend taking a look at the usb4bsd 
port if you're mostly interested in drivers and the concensus on IRC 
seems to be that the Samba VFS module for historical access has the 
highest coolness factor this year ;-) Either will teach you a lot about 
OS internals and both have tangible results, which makes the whole 
experience that much more rewarding. But we're very interested in your 
ideas and suggestions too.

I'm inexperienced in the domain of device drivers but I'm willing to 
learn as much as possible and I am interested in some of the projects 
you describe in your gsoc project list, in particular virtio drivers 
implementation. I have begun to get some information about it. Can you 
point me some links or some documentation to read about it (apart from 
the ones indicated in the project list) ?
Unfortunately that's the only documentation I'm aware of that is 
specific to virtio. With regard to driver writing, I can recommend 
http://lwn.net/Kernel/LDD3/. While our APIs are completely different to 
Linux's, the principles are similar for almost all monolithic OS 
drivers. Especially the parts about synchronization and race conditions 
are a must-read if you want to get into driver development.

HTH,
Aggelos







More information about the Kernel mailing list