Free Software programmer
This blog existed before my current employment, and obviously reflects my own opinions and not theirs.
This work is licensed under a Creative Commons Attribution 2.1 Australia License.
Mon, 12 Feb 2007
So, posting the (cleaned up, divided up) lguest patches to lkml actually helped significantly. There was some useful comments from Andrew Morton and particularly Andi Kleen, but also about the block driver from Jens Axboe. It turns out that "end_request()" doesn't actually end the request, it ends a single bio_vec. Hence I was doing far too much I/O. Ouch!
That fix in my hot little hand, I benchmarked a kernel compile under lguest again. Microbenchmarks are nice for focussing optimizations, but they don't tell the whole story. Compile time: 17:55. Down by about a minute on the last time I tested. But this time I rebooted my host kernel with mem=512m (the same as the guest had), for a fairer comparison. 14:01. That means I'm within 30% of native speed.
Not a bad effort for a simple hypervisor! Now, if only adding more memory didn't slow it down (damn highmem!)...
[/tech] permanent link