Monthly Archives: July 2011

Xen Fu rocks at OSCON

Like in previous years OSCON, was a great conference to connect with Open Source developers, users and people and companies generally interested in open source. At this point, I would normally share my favourite sessions with you. Not so this year: too little time to see many sessions! Jeremy Fitzhardinge, Ewan Mellor, Joe Keller and I were extremely busy at the booth, meeting many many long-time and new Xen users, open source enthusiasts and people wanting to know about what the Xen community is doing. And we gave away hundreds of Xen Fu Panda T-shirts, which were very popular at OSCON, leading to large crowds and lines at our booth.

Xen Fu Panda rocks!

On a more serious note, OSCON was a great way to connect to users we did not know about. Many people we talked to are using open source Xen or one of its commercial distributions in some form. I learned about many innovative use-cases of Xen technology, which was extremely exciting. Of course Xen is used for virtualization, to run internal infrastructure and internal and external cloud services. However, I was surprised about the use of the Xen hypervisor in software development to run virtualized test labs and software production environments. Some users are stretching Xen to the limit running 50+ virtual machines on a PC.

The good news is that many of the Xen users we talked to are happy to publicly share how they use Xen, what they have learned and where they think Xen should go in the future. I will be opening the blog and other resources to Xen users, such that you all of you can learn from their experiences. The key lesson I took away from OSCON is that Xen has a large user base, which deserves more focus by  Another lesson is that our developer community is moving in the right direction: Xen being available in Linux 3 and project Kronos is exactly what many of our users need.

Besides 100s of great talks, OSCON is also always lots of fun. My personal highlights this year were: meeting Sen users, the Ignite talks, the Openstack birthday party, spending friday afternoon with Xen users from Brazil and Paul Fenwick’s closing keynote explaining why About Known Bugs and Exploits in our Brains.

Thank you to everybody who came by and talked to us! If you visited us and didn’t manage to get a Xen Fu Panda T-shirt, I will make the T-shirt design available via the store when XenSummit is over.

Linux 3, Xen ARM, CLS and XenSummit

Quite a lot has happened the last few days and I seem to be forever catching up on reporting what is going on, rather than doing this in a timely matter. As a result, this post will be a potpourri of brief updates.

Linux 3 with Xen support has been released

On July 22nd, Linus Torvald finally released the Linux 3 kernel. Although Linus said that “we have the usual two thirds driver changes, and a lot of random fixes, but the point is that 3.0 is *just* about renumbering … No breakage, no special scary new features, nothing at all like that” this was a major milestone for as the last missing piece for full Dom 0 support made it into the kernel. We are also starting to see concrete plans by various Linux distributions such as Debian, Ubuntu, Fedora and others to pick up the changes. I wanted to thank everybody who was involved in making this happen again, but in particular Jeremy Fitzhardinge and Konrad Wilk. Konrad’s talk at next week’s XenSummit will shed some light on what this means and what will happen next (also read the background story here).

Rebasing Xen ARM to xen-unstable

Jaemin Ryu started to refactor the Xen ARM code to the xen-unstable mainline and managed to get the code to build on his personal branch. The code does not run yet, but this is major progress in preparing the Xen ARM code for upstreaming into the Xen mainline. I am rather excited about the possibilities this work will create. A big thank you, and please support the Xen ARM team.

Community Leadership Summit

I spent the weekend at the CLS in Portland. You may think that this is an event for Community Managers only, but I believe that any project lead, maintainer and other person leading initiatives in open source can learn from the outcome of the CLS. Even though you were not there, it may be worth having a look at the session notes. Jono Bacon, Michael Van Riper, Eric Herberholz and the other volunteers have done a great job pulling this event together again this year. There is also a great gallery of photos by Mark T.

7 days to XenSummit

Registrations for XenSummit are going well. I am pondering whether I should close XenSummit registrations on Thusday the 28th as I will need to put the food order in on that day. I decided against it as in past years there was a rush of registrations in the last few days before the summit. What I will do instead, is estimate the food order based on past data and then limit the number of available registrations. This means that if we do get a bigger than expected surge of registrations after Thursday, there may not be space for you. If plan to attend and want to make sure that we will have space, make sure you register before Thursday!

Xen at OSCON

This year is the first time that Xen will be at O’Reilly’s Open Source Convention. OSCON is held in Portland this week. As always OSCON has a packed and exciting program, with opportunities to meet developers and users from many open source projects. is very excited to have a booth at OSCON this year, where you can meet Lars Kurth (community manager), Jeremy Fitzhardinge (maintainer) and Ewan Mellor (Advisory Board member) and others.

If you are a Xen user or Xen developer come by and say hello. If you are merely interested in Xen our experts will be able to tell you about Xen and related projects. Ewan Mellor from Citrix and Paul Voccio from Rackspace will give a talk with demo on Achieving Hybrid Cloud Mobility with Openstack and Xen Cloud Platform. I will schedule a BoF as well and let you know when it is!

Looking forward to meet you!

Project Kronos: XenAPI on Debian and Ubuntu

The XCP team would like to formally announce Project Kronos, our port of XCP’s XenAPI toolstack to Debian and Ubuntu dom0. This will give users the ability to install Debian or Ubuntu, and then just do ‘apt-get install xapi’ in order to build a system that is (roughly) functionally equivalent to a standard XCP distribution.

This project provides a number of benefits. First of all, it will provide Xen users with the option of using the same API and toolstack that XCP and XenServer provide. It will give early adopters the chance to try out new changes to the XenAPI before they get released in new XCP and XenServer versions. And because we’ve ported all of our toolstack to build on Debian, it’s now much, much easier to build our tools outside of an SDK VM.

Some useful links:

To use the xapi autobuilder, just clone the repository and type ‘make’. This will pull in all the dependency repositories and build them using pbuilder. If you want to build individual packages, dig into the build scripts a bit to see what’s going on — hopefully we’ll have a little better documentation soon.

Please follow the instructions and play along! This is very much a work in progress, and things are expected to change rapidly. We don’t expect everything to work properly yet, but we think it’s ready enough to at least share our progress. If you do decide to test this out, please report any bugs you find or problems you encounter to the xen-api mailing list, with the subject line “Xapi on Debian: <blah>”. There are also XCP contributors lurking on #xen-api on freenode who may be able to answer questions about build or install problems.

Thanks to everyone who’s helped out with this project, and to everyone who is about to give it a try. Happy hacking!

12 days to XenSummit

Just a quick reminder that XenSummit is in 12 days. Since the agenda was published a few weeks back, there have been some additions.

  • AB Periasamy, CTO, Gluster, discusses how the Gluster OpenStack Connector brings scale-out unified file and object storage capability to Xen and OpenStack.
  • Also pre-registration for Lighning talks and Lunchtime BoFs for Aug 2 are already full, but there is still some space for Aug 3. If you do want to register, fill out the on-line form or register on the day

I will hopefully also be able to reveal the Amazon speaker and details of the Amazon keynote soon. All other information, such as abstracts, detailed agenda, hotel information, registration is available on the XenSummit portal.

Wei Liu: status update of the Virtio on Xen project

Another guest blog post by Wei Liu, one of our Google Summer of Code students.

Hi everybody, it’s midterm of Google Summer of Code now, let me tell you what I’ve done and learned during this period.

I started working on the project in the community bonding period. I took Virtio on Xen HVM as my warming up phase, which would help me understand QEMU and Virtio implementation better. Luckily, it did not require much work to get Virtio work on Xen HVM. At the end of the community bonding period, I wrote a patch to enable MSI injection for HVM guest, which has been applied to the tree.

Then I started to work on Virtio for pure PV. That’s not trivial. I spent lots of time trying to implement a Virtio transport layer with Xenbus, event channel and grant table, which is called virtio_xenbus (corresponding to current Virtio transport layer virtio_pci, which utilizes virtual PCI bus). The new transport layer must retain same behavior of the old one. However, one fundamental difference between evtchn and vpci is that, vpic works in a synchronous way while evtchn is born asynchronous. I got inspired by xen-pcifront and xen-pciback and finally solved this problem. Ah, a working transport layer finally.

But porting Virtio for pure PV needs more than a working transport layer. Vring, which is responsible for storing data, also needs some care. The original implementation uses kmalloc() to allocate the ring. It is OK to use kmalloc to get physical continuous memory in HVM. However, Xen PV backend needs to access machine contiguous memory. So we have to enable Xen’s software IOTLB and replace kmalloc() with DMA API. Also, the physical address in scatter gather list should be replaced with machine address. So here we get a Vring implementation for pure PV guest.

Is that all? No. One feature we need to disable is the indirect buffer support. Because this feature causes specific driver to allocate buffers with kmalloc() in a much upper level. I tangled with this problem for sometime, finding that I would rather leave those drivers alone than break them. So I chose to disable this feature at the moment. But this feature is critical to good performance, so I may try to enable it someday.

Good, we finally have our foundation ready! Let’s start to tangle with specific drivers. I chose Virtio net driver as a start. Every driver has its own features. As mentioned above, we should avoid allocating buffer with kmalloc() in driver level, so the CTRL_VQ feature needs to be disabled. In fact, I have no driver features enabled at the moment. What makes me really happy is that Virtio net almost works out of the box. I just want to make sure things work for the moment, pre-mature optimization is evil.

What to do next? Virtio blk is my next goal. Hopefully it would not take too long because I’m a bit behind schedule. Then I will start to port SPICE for Xen. Then try to enable more features of Virtio net/blk and gain better performance.
That’s the plan. Time is very limited, I feel excited.

I’ve learned a lot during this period. I worked together with the community. The interaction worked out quite well. I discussed a lot with Xen developers and got a better understanding of Xen and QEMU, as well as Virtio itself.

Last but not least, I want to thank Stefano Stabellini, Ian Campbell, Konrad Wilk and those who helped me through my project in this hot summer. I would not have come so far without your help.

– Wei Liu