Wednesday, May 13, 2009

We open if we die

I wrote a few comments about introducing "guarantees" in software -- how do you assure your customers that they won't be left in the lurch if you go down. It generated a healthy discussion and that gave me an opportunity to fine-tune the definition of "insurance" in software. Openness is such an advantage to foster great discussions and free dialogue.

So reading this piece of news this morning via phoronix about a company called pogoplug has me really excited. I'd feel vindicated if they could increase their customer base by that announcement. I hope they don't go down; but I'd also like to see them go open regardless of their financial health; if an idea is out in the market, there'll be people copying it and implementing it in different ways anyway. If, instead, they open up their code right away, they can engage a much wider community in enhancing their software and prevent variants from springing up which might even offer competing features.

Saturday, April 25, 2009

Re-comparing file systems

The previous attempt at comparing file systems based on the ability to allocate large files and zero them met with some interesting feedback. I was asked why I didn't add reiserfs to the tests and also if I could test with larger files.

The test itself had a few problems, making the results unfair:

- I had different partitions for different file systems. So the hard drive geometry and seek times would play a part in the test results

- One can never be sure that the data that was requested to be written to the hard disk was actually written unless one unmounts the partition

- Other data that was in the cache before starting the test could be in the process of being written out to the disk and that could also interfere with the results

All these have been addressed in the newer results.

There are a few more goodies too:
- gnuplot script to ease the charting of data
- A script to automate testing of on various file systems
- A big bug fixed that affected the results for the chunk-writing cases (4k and 8k): this existed right from the time I first wrote the test and was the result of using the wrong parameter for calculating chunk size. This was spotted by Mike Galbraith on lkml.

Browse the sources here

or git-clone them by

git clone git://git.fedorapeople.org/~amitshah/alloc-perf.git

So in addition to ext3, ext4, xfs and btrfs, I've added ext2, reiserfs and expanded the ext3 test to cover the three journalling modes: data, writeback and guarded. guarded is the new mode that's being proposed (it's not yet in the Linux kernel). It's to have the speed of writeback and the consistency of ordered.

I've also run these tests twice, once with a user logged in and a full desktop on. This is to measure the times that a user will see when actually working on the system and some app tries allocating files.

I also ran the tests in single mode so that there are no background services running and the effect of other processes on the tests is not seen. This is done to see the timing. The fragmentation will of course remain more or less the same; that's not a property of system load.

It's also important to note that I created this test suite to mainly find out how fragmented the files are when allocating them using different methods on different file systems. The comparison of performance is a side-effect. This test is also not useful for any kind of stress-testing file systems. There are other suites that do a good job of it.

That said, the results suggest that btrfs, xfs and ext4 are the best when it comes to keeping fragments at the lowest. Reiserfs really looks bad in these tests.Time-wise, the file systems that support the fallocate() syscall perform the best, using almost no time in allocating files of any size. ext4, xfs and btrfs support this syscall.

On to the tests. I created a 4GiB file for each test. The tests are: posix_fallocate(), mmap+memset, writing 4k-sized chunks and writing 8k-sized chunks. These tests are repeated inside the same partition sized 20GiB. The script reformats the partition for the appropriate fs before the run.

The results:

The first 4 columns show the times (in seconds) and the last four columns show the fragments resulting from the corresponding test.

The results, in text form, are:

# 4GiB file
# Desktop on
filesystem posix-fallocate mmap chunk-4096 chunk-8192 posix-fallocate mmap chunk-4096 chunk-8192
ext2 73 96 77 80 34 39 39 36
ext3-writeback 89 104 89 93 34 36 37 37
ext3-ordered 87 98 89 92 34 35 37 36
ext3-guarded 89 102 90 93 34 35 36 36
ext4 0 84 74 79 1 10 9 7
xfs 0 81 75 81 1 2 2 2
reiserfs 85 86 89 93 938 35 953 956
btrfs 0 85 79 82 1 1 1 1

# 4GiB file
# Single
filesystem posix-fallocate mmap chunk-4096 chunk-8192 posix-fallocate mmap chunk-4096 chunk-8192
ext2 71 85 73 77 33 37 35 36
ext3-writeback 84 91 86 90 34 35 37 36
ext3-ordered 85 85 87 91 34 34 37 36
ext3-guarded 84 85 86 90 34 34 38 37
ext4 0 74 72 76 1 10 9 7
xfs 0 72 73 77 1 2 2 2
reiserfs 83 75 86 91 938 35 953 956
btrfs 0 74 76 80 1 1 1 1


[Sorry; couldn't find an option to make this look proper]

Fig. 1, number of fragments. reiserfs performs really bad here.

Fig. 2. The same results, but without reiserfs.


Fig. 3, time results, with desktop on



Fig. 4. Time results, without desktop -- in single user mode.

So in conclusion, as noted above, btrfs, xfs and ext4 are the best when it comes to keeping fragments at the lowest. Reiserfs really looks bad in these tests. Time-wise, the file systems that support the fallocate() syscall perform the best, using almost no time in allocating files of any size. ext4, xfs and btrfs support this syscall.

Wednesday, April 15, 2009

The fallocate() Story Continues

Making apps use the fallocate() syscall instead of writing zeros to a file is the preferred way to init a file with all 0s. I was pleasantly surprised ktorrent already does that (but via a non-default config option):



I would like it if they made posix_fallocate() the default, if available on the target system. posix_fallocate() already uses fallocate() if supported by the filesystem, otherwise it falls down to the writing zeros block-by-block method. My last post showed the comparison of various file allocation methods, the performance of filesystems and also the fragmentation each method causes.

Reading that post again, it looks like it could've been written much better and could've used a couple of editing rounds. So I've decided to do a second post which will have better results and more file systems added to the fray. I've updated the test to calculate the numbers more reliably and have also run the tests once more with more filesystems and taking factors like hard disk geometry, seek times, etc., out of the equation. The git tree is already updated with the new code, so you can try it out yourself. In any case, stay tuned for the results.

Friday, March 20, 2009

Comparison of File Systems And Speeding Up Applications

How should one allocate disk space for a file for later writing? ftruncate() (or lseek() followed by write()) create sparse files, not what is needed. A traditional way is to write zeroes to the file till it reaches the desired file size. Doing things this way has a few drawbacks:

  • Slow, as small chunks are written one at a time by the write() syscall
  • Lots of fragmentation
posix_fallocate() is a library call that handles the chunking of writes in one batch; the application need not have to code his/her own block-by-block writes. But this still is in the userspace.

Linux 2.6.23 introduced the fallocate() system call. The allocation is then moved to kernel space and hence is faster. New file systems that support extents make this call very fast indeed: a single extent is to be marked as being allocated on disk (as traditionally blocks were being marked as 'used'). Fragmentation too is reduced as file systems will now keep track of extents, instead of smaller blocks.

posix_fallocate() will internally use fallocate() if the syscall exists in the running kernel.

So I thought it would be a good idea to make libvirt use posix_fallocate() so that systems with the newer file systems will directly benefit when allocating disk space for virtual machines. I wasn't sure of what method libvirt already used to allocate the space. I found out that it allocated blocks in 4KiB sized chunks.

So I sent a patch to the libvir-list to convert to posix_fallocate() and danpb asked me about what the benefits of this approach were and also asked about using alternative approaches if not writing in 4K chunks. I didn't have any data to back up my claims of "this approach will be fast and will result in less fragmentation, which is desirable". So I set out to do some benchmarking. To do that, though, I first had to make some empty disk space to create a few file systems of sufficiently large sizes. Hunting for a test machine with spare disk space proved futie, so I went about resizing my ext3 partition and creating about 15 GB of free disk space. I intended to test ext3, ext4, xfs and btrfs. I could use my existing ext3 partition for the testing, but that would not give honest results about the fragmentation (existing file systems may already be fragmented, causing big new files surely to be fragmented whereas on a fresh fs, I won't run into that risk).

Though even creating separate partitions on rotating storage and testing file system performance won't give perfectly honest results, I figured if the percentage difference in the results was quite high, that won't matter. I grabbed the latest Linus tree and the latest dev trees for the userspace utilities for all the file systems and created about 5GB partitions for each fs.

I then wrote a program that created a file, allocated disk space and closed it and calculate the time taken in doing so. This was done multiple times for different allocation methods: posix_fallocate(), mmap() + memset() and writing zeroes in 4096 byte chunks and 8192 byte chunks.

So I had four methods of allocating files and 5G partition size. So I decided to check the performance by creating 1GiB file size for each allocation method.

The program is here. The results, here. The git tree is here.

I was quite surprised seeing poor performance for posix_fallocate() on ext4. On digging a bit, I realised mkfs.ext4 didn't create it with extents enabled. I reformatted the partition, but that data was valuable to have as well. Shows how much a file system is better with extents support.

Graphically, it looks like this:
Notice that ext4, xfs and btrfs take only a few microseconds to complete posix_fallocate().


The number of fragments created:

btrfs doesn't yet have the ioctl implemented for calculating fragments.

The results are very impressive and the final patches to libvirt were finalised pretty quickly. They're now in the development branch libvirt. Coming soon to a virtual machine management application near you.

Use of posix_fallocate() will be beneficial to programs that know in advance the size of the file being created, like torrent clients, ftp clients, browsers, download managers, etc. It won't be beneficial in the speed sense, as data is only written when it's downloaded, but it's beneficial in the as-less-fragmentation-as-possible sense.

Friday, February 27, 2009

Startups in 14 sentences

Paul Graham has an article on the top 13 things to keep in mind for entrepreneurs. I have one to add (for software startups):

- Going open source can help
You might have a brilliant idea and a cool new product. It mostly will be disruptive technology. You might think of changing the world. But people might have to modify the way they were doing things. What if you run out of funds midway or some other unforeseen event by which your company has to shut shop? Customers will be vary of deploying solutions from startups for fears of them going down. If the customers are given access to the source code, they're at least insured they can have control over the software if your company is unable to support it. And letting them know this can win some additional customers -- who knows!

Monday, January 12, 2009

Making Suspend Safer for File Systems

I saw these File System Freezing patches that got merged into Linus' tree yesterday and instantly thought that these patches could be used to freeze file systems before going into a suspended state. At the recent foss.in/2008, I met with Christoph Hellwig and one of the things we discussed was how he would never trust any file system to be in a consistent state after attempting suspend-to-disk.

The freezing patches are aimed at snapshotting as of now. Extending the suspend routines to make use of them is something I still have to look at. While working with file systems isn't entirely new to me -- I've worked on something called the Mosix File System earlier, it's been a really long time. It'll be quite interesting to work on this.

I had a brief chat with hch about this idea and while he says this still will not convince him to suspend to disk, it could be a good thing for suspend to ram where the laptop runs out of power but the fs could be in a good state. I agree. Though I'd like to use s-t-d with this!

I've had many ideas slip by without blogging about them for ages and later seen them implement by others. In this case, even if I don't end up implementing something, I'd at least have the satisfaction of having penned it down first.

Wednesday, December 31, 2008

Modesty

A Quote, after a long time.

A few friends were having a discussion on modesty and my opinion was called for. This is what I had to say:

I don't blow my own trumpet. Never. There are people who say things about me, though. So I feel compelled to correct them every now and then so that What They Say Is What I Am (TM).

Some people label me immodest.

update: Some background info added. In all modesty, a few people thought this post sounded arrogant and they were quick to point out that I really am not. I thought labelling this post as 'humour' would suffice...

Tuesday, December 30, 2008

Animal Farm

I'm (re-)reading Animal Farm these days, 2-3 pages a day. I can't help but correlate it to the headline-grabbing news that's happening these days.

Thursday, December 04, 2008

KVM: Disabled by BIOS

I spent some time fixing this on a Dell Optiplex 755. I thought it was a BIOS update that was necesary and had to hunt for a DOS bootable that could run the EXE given by Dell. FreeDOS wouldn't work. Finally found a disk given by Dell (with some other machine) that was a bootable. Even the updated BIOS didn't solve this issue.

I then searched around the net and found this post that mentioned to disable Trusted Execution. Well, if you have an option that enables virtualization and then give another option that effectively disables it, what good is this UI?

This, however, sounds like something that I don't yet understand. So I should go read what that is and how to make KVM run with it enabled.

Sunday, November 09, 2008

Laptops: The New Desktops

As laptop sales are outpacing desktop sales and laptops becoming more and more capable, it's no wonder that laptops are now the preferred choice for a computer. The prices of laptops have fallen dramatically to aid this trend.

However, with this growing trend, there now comes a need to have even smaller portable computers. The laptops are now "too big". So we now have the onslaught of netbooks and mobile phones doubling as handheld computers. So what exactly is it that people need? They want big screens but the device should be portable. They need more processing power but a small device and one that doesn't heat up. It's going to be very interesting wathcing this space in the next few years.

While discussing this topic with Vijay today, he mentioned he wanted to take just the laptop screen around without having to undock his laptop for presentations or short meetings. Tablets don't work for him for some reasons. He just wanted the screen to go with him and communicate with the "base" wirelessly. I thought that should be possible with a low-power, low-speed processor on the screen itself running something off the RAM. Anyway, with the cloud-computing phenomenon, all one would need is a browser and a handful of other software (mainly plugins to browsers). The OSes will either have to evolve to support ASMP or the processor manufacturers will have to come out with low-power chips and being able to share the bus with a stronger processor (Intel's Atom does seem it can fit here). The OS has to evolve in either case along with the chipset.

The desktop software will have to have support for this, of course, where you would click something like "detach the screen safely" and the necessary plugins can be transferred to the screen's RAM. Or the screen can have some flash storage and the browser, presentation software, etc. can be stored natively all the time.

Anyway, is this still the most-desired gadget? Once this is done (as it has, Toshiba had a prototype two years back along the same lines), will people stop wanting more? Just in today's world, I can imagine people just wanting to use their super mobile phones to work as the "screen" -- a low-power computer when not in front of their laptops. They can be hooked up to projectors easily, they can be carried around, can be hooked up to bigger monitors to get more screen space. What's stopping us from doing that now?

Wednesday, October 08, 2008

Piracy

The Indian movie industry (and that's not just "Bollywood") is plagued with piracy of movies as well as music. I've had several friends staying abroad telling me about recent releases they saw "on the Internet". Of course, songs are always to be downloaded and not bought.

A movie I saw recently had a note at the end of the screening: "Please buy original CDs. Do not download music." There was laughter in the sparsely-populated movie hall (on the 2nd day of the screening of the movie that talked about youth and music, no less).

That got me thinking: we spend quite a lot of money these days to watch movies in multiplexes. It's about 5x-6x the cost from what I used to pay about 10 years back. And that too doesn't guarantee a seat in the "balcony". These days, the movie halls usually have flat pricing, no matter where you're seated. You could be 5 feet away from the screen or 50.

So it's no wonder people don't want to go to movie theatres. They just walk across the street and buy a DVD for Rs 30 that has 3 or 4 of the latest releases. And they can always download the music or buy MP3 CDs that cost about the same but have music from 50 recent releases. Original audio CDs cost about the same it costs to watch the movie in the movie hall.

I was thinking what can help curb this piracy, and one thing that came to mind was the distributors and producers of the movies could give away audio CDs of the movie just after the screening either for free or for a very samll token amount, like Rs 30.

If this were done, people would actually go to the theatre to watch movies since the cost of the ticket no longer only gets them the movie but also gets them the CD to the songs which they've already listened to (and liked?) (side note: movies in India usually run more because of the music and actors than the story or reviews). Also, music gets distributed and listened to legally instead of it being pirated.

The producers need not worry about losing out on income via audio CD sales. I wonder how much they make anyway. Also, if this drives more people to the theatres, it's only going to be good for them. For people who do not want to watch the movie but want the CD, they can buy the CDs as they had been buying previously. For people who wanted the music but did not buy it, there's no negative in the model for the producer, but there's a positive: enticing them to go watch the movie plus get a chance to get the CD.

So it came as a welcome surprise (though I don't know how well this idea will take off) when I saw Google announced putting links in youtube videos for songs in the video.

I've had (non-Indian) friends tell me they don't download music any more since they can get songs for just under a dollar from the various online stores. It hardly makes any difference to their bottomlines plus they get legal music and are free of any hassles they might later get into for doing illegal stuff (downloading).

This might work elsewhere, but in India, the mentality hasn't changed enough that people will buy something instead of getting it for free or from a very cheap alternative. Adding 'buy music you just liked from here' won't pick off. I'd like to be proven wrong, though.

There's a lot to be gained in this model for everyone involved. Even the movie halls will see more traffic and hence more income for the various food courts and shopping plazas that are bundled in the movie hall complexes these days.

If this is implemented and takes off, the producers can then think about giving off DVDs of the movie for let's say 50% of the original price. Why not?

Update: xkcd on piracy

Saturday, October 04, 2008

Traffic

Traffic of the vehicular kind. Not the one I see on this blog. It's not just traffic, it's terrorism on roads. Every day. Every minute. I'm petrified of road accidents, and the people in Pune (or anywhere else in India, for that matter) don't let me breathe easy whenever I travel.

I had written about traffic earlier:

Just read an article on Wired on ideas for smoother traffic flow. Some ideas suggested are not having any signs or signals at intersections, so drivers are more cautious and so on. Well, it kind of works that way here in Pune, with people ignoring signals, pedestrians walking on streets instead of footpaths, cyclists and bikers zipping through the footpaths at times to avoid a long queue of vehicles and so on.

And plus, the potholes, speed-brakers and gutters (which are not aligned with the road height) do ensure the vehicles don't race beyond a particular limit.

I guess the Indian road authorities had this all figured out much, much earlier!


However, there's more to add to the terrorism aspect of traffic:

Terror

- Everyone has a birthright to honk, and honk hard. People blow their horns to signal to others:
- that they're overtaking from the wrong side
- that they're overtaking from the right side
- that they're speeding at a crossing and everyone else who hears the horn has to stop, or else...
- to communicate with passers-by
- that they're about to cross the just-turned-red signal and all others should wait for him / her to cross

- Everyone has a right to spit out of their cars / buses / trucks.
- While waiting at a signal or passing a bus, make sure you alert the passengers of your existence else you'll be spat upon.

- No one respects road dividers (even if they exist). If someone has to turn to the road on the other side of a divider, one doesn't go slightly further and make a U-turn. You cut the road and drive on the other side

- Cyclists will never wear light clothes or reflectors. It's upto the others to detect their presence and avoid them at nights

- Everyone drives with high beam at nights, blinding the traffic on the other side. Pedestrians, cyclists -- never safe.

- Buses / trucks never stop in the space allotted to them. They occupy the whole road.

Did I mention I'm petrified of road accidents? I've seen people involved in road accidents scream in agony in hospitals. Young people. Those who like to speed across the roads, flaunting their flashy bikes and mobiles. Ending up in hospitals and screaming. I wonder if death is better than such a state after a road accident.

Government Apathy

I was headed out in my new car. I was waiting at a junction for the signal to go green. It went green, I went ahead, and bam! A biker from my left rammed straight into the car. He broke his signal. He justified by saying "left is a free turn" and that he could take it anytime. What's alarming is he had zero visibility of my car due to some other car in front of him. Why do people race at crossings, and also go into blind territory? I wonder how many people overtake buses, cars, etc., only to find someone crossing and dashing into them?

Immediately after this accident, I was surrounded by the colleagues of the biker. One trainee cop did come up to the scene of the accident, but he was shooed away by the mob. I had no other go but to get the dents serviced at my own expense. I just kept wondering: I pay so much of tax each year, what do I get in return? Bad roads and no justice. Is there nothing a law-abiding citizen can expect his elected representative do anything for him?

Idea for a smoother traffic flow

Inspite of all this, I remain optimistic. With the traffic in Pune (and every Indian city) growing by the minute, I thought of something that is eco-friendly, traffic-friendly as well as people-friendly. Trams. Why not install trams in Pune that ferry people between hotspots and the central areas? For example, the Hinjewadi tech park to Shivajinagar, Magarpatta to Pune Station or Swargate, and then connect Shivajinagar, Pune Station, Swargate, Deccan, Kothrud, Aundh, etc.? There's no risk of the trams stopping in the middle of the roads causing inconvenience. They can operate on electricity, which can be generated by nuclear, wind or solar energy (or a combination of them all). Travel within the city is already a pain with the auto rickshaw people being very uncooperative and the buses killing people and breaking traffic rules. This will also help take off a lot of private vehicles on roads and also the shuttles that companies ply in the city for employeees. Pollution (air, noise) levels will drop drastically.

Please, please do something like this.

Wednesday, August 06, 2008

SPICE demo

Though people by now have a fairly good idea of what Qumranet does and what the product is about, there's a really nice demo up at the briforum website where you can see SolidICE, SPICE and KVM in action:

http://media.brianmadden.com/briforumplayer/bfplayerdynamic.asp?id=425

Wednesday, July 02, 2008

Kicking up Storms

Much hue and cry was raised earlier this year when Sania Mirza, the #1 Indian woman tennis player, kept her feet close to the Indian flag on a table.



Michael Ballack, the captain of the German football (soccer) team, returned home from the Euro 2008 championship and does this:



What would the reaction to this in Germany be?

My take: such acts do count as disrespect towards the country flag. Anyone have other views?

(Photo credits: Times of India)

Monday, June 30, 2008

Creative Capitalism: For Everyone's Good

Bill Gates, in his new role, has these thoughts to offer:

http://www.gatesfoundation.org/MediaCenter/Speeches/Co-ChairSpeeches/BillgSpeeches/BGSpeechWEF-080124.htm

Quite simple and effective ways to help the needy and also continue doing what you currently are.

Tuesday, May 20, 2008

Mixed Bag

Wildlife: Extinct Tasmanian Tiger's DNA Revived in Mice
That's just wonderful if we can save tigers

Tech: Getting started with awk

Trivia: How Coffee Changed the World
Story of coffee's discovery

Eco-friendly: Scott Adams is building an eco-friendly house
He's also designing his home in an open way, inviting reader comments and putting up versions of his floor plan. Some previous details here.

Friday, March 21, 2008

The Art of Convincing and the Importance of Freedom

A kid walks to her father. She wants a chocolate. She knows the father can't refuse, but mom has tighter control over whether she can really have it. The kid is smart. She tells her dad "mom says I can have it if you agree". The father says "OK". Then she goes to mom and says "dad thinks I can have chocolate. Give me one."

What's smart about this is that the kid knows the opposition well. Microsoft seems to know it as well. OOXML, the format they're proposing to be an ISO format for storing documents, needs support from the industry and countries for it to be a standard. Nothing's wrong with that. But the problem is they don't want to reveal all the specifications of storing files in their format. Which basically means they continue to have a monopoly and tight control over your documents.

Let's say you've bought MS Word or MS Office in 1998 and are happy with it. It still works. All your documents are stored on your hard disk. Now you decide to upgrade your computer and with it, all your software. You purchase the newest version of MS Office. You open your old document. It doesn't open. You try another one. Same result. You think something's gone wrong with your backup. You blame the computer vendor who gave you the new machine and promised to restore your old data. The problem, however, is not caused by the vendor. It's caused by Microsoft. Over the years, they decided to change the file formats and not support the documents which were created by older versions of their software. So now you're left with unusable copies of your documents because there is no support available for you to import the data to the new format.

Why can this happen? Because Microsoft didn't want to share the details on how they store your information with others. We saw why this is bad. But if they were to share the details, won't your documents be insecure? Won't others be able to see what you have? Well, no. As long as there are people who have the same software that you have, they'll be able to open your documents.

Also consider this: you don't want to purchase the expensive software from Microsoft to store your documents. You use free software available (free as in freedom, not price) to store your documents. But someone sends you a document in a proprietary format. How do you access the information present in it? Since Microsoft doesn't share details as to how it stores information, you won't be able to access it. You don't want to buy a few thousands Rupees worth of software only because some other people use it.

So isn't Microsoft's proposal to make its file format a positive step? In a way, yes. Because it proves that opening up of that information does not in itself constitute insecurity. If you want your documents to be safe, password-protect them and take precautions to not expose them to suspicious people.

But that's it. It's not a positive step for the simple reason that they don't want to publish the entire file format. What they're proposing is a mini-skirt. Show a little, hide a lot.

India just voted against making OOXML an ISO standard. This is a very positive move. We're not encouraging bad practices and we want interoperable standards. The rival format, ODF (Open Document Format), already has two office suites supporting it and using as the native file format (OpenOffice.Org and KOffice). Everything is open and interoperability is guaranteed. No one has to buy anything from anyone to open a file stored in this format. Just download a copy of either of the office suites and you're ready to go.

Thanks to the efforts of everyone involved in rejecting the OOXML standard.

Virtualisation: The KVM Way

I was invited at the Convergence 2008 conference on Virtualization at the IIT Bombay. I thought it would be fun to have competitors looking at you while you tell everyone why your hypervisor is the best. It was a slight disappointment, though, as Citrix (Xen) and Microsoft were absent. VMWare was present, however, and quite a lot of people who have used Xen.

The problem with KVM is people know about it, but not much information is available by way of whitepapers or nice graphs showing why KVM is better than the others. So not many try it. That's really sad, since KVM is so simple to learn, use and adapt that it should ideally be the first thing that comes to peoples' minds when they think of a virtual machine monitor. And since KVM believes in the UNIX philosophy of 'do one thing and do it right', we automatically inherit several features from the environment that already exists, for which the competition has to spend years and a lot of dollars to get support for. For example, guest memory swapping, NUMA support, hibernate/suspend/resume of the host machine with VMs on and so on.

The slide deck on my KVM presentation is available for those interested. People searching for more KVM information: see the KVM Forums page. As of now, there is quite a lot of information present in the KVM Forum 2007 page. The 2008 KVM Forum is happening in June, watch the kvm-devel mailing list for information on what to expect and how to get there.

Life in Venn Diagrams

I frequently read a few blogs and whenever I come across some interesting ones, I lose hours of productive work. One such blog I came across was indexed from the freakonomics blog. It has me hooked.

eg:



Tuesday, December 18, 2007

Foss.in

Foss.in/2007 is over and I'm back home. The slide deck on my kvm talk is now available.

This was the first time I went to foss.in and I really liked the experience. More than the talks, it's the corridor discussions and meeting up with people that's really the most interesting part. The place was full with people who have contributed immensely to the software I use everyday, and I couldn't let go of such an opportunity to go and thank them personally. I definitely missed thanking everyone, so I think I'll go there next year to make up for that. Danese Cooper gets my vote for the best talk: Trekking with White Elephants. It's a great way to learn how to go about contributing to open source and years of experience in getting the management knowledgeable about free software. I've learnt these lessons myself through all these years and I'm sure young people out there will benefit a lot from these tips. (I will update the link once I get access to the final slides)

My talk on KVM turned into a demo session for KVM and explaining merits of the approach as opposed to Xen, as a few people in the audience had already used Xen and they wanted to know why KVM is different or better. Too bad, since I was hoping there would be contributors who would have liked to know how KVM actually works.

I wasn't also too happy with the scheduling of the talks: there was a gcc talk in parallel with a kernel talk and a filesystem / distributed computing talk in parallel with another kernel talk. To make matters worse, Thomas Gleixner's talk on the RT patches was added later in the same time slot as I was to speak.

Rusty has to be the most entertaining kernel hacker; in his inimitable style, he provided a grand finale to the event meant to encourage contributors to the FOSS community. He got me up on stage along with James Morris to speak about how we got involved with FOSS and the kernel.

The Linux kernel folks at IBM LTC Bangalore swore they wouldn't let me go away easily and asked me to visit their office where people would ask me all sorts of questions on KVM. That was a very nice session that I had; they're mostly interested in the power management and migration issues on kvm, and that got me pretty kicked, as I'm extremely interested in the power management and Green issues of late. Though I couldn't answer most of the questions related to power management, I'm sure the kvm-devel list can help.

Moreover, quite a few people came up to me and asked about my work on the kernel and kvm and that was quite encouraging.

I'm sure I also caused inconvenience to people at the sponsor stalls asking them in what ways their company contributed to foss software. Most of them were there just to attract talent. I'm hoping the FOSS enthusiasts don't stop contributing once they're in those big companies.