Linux magazines.

pile of linux mags

In my quest to clear out my large magazine collection, I have parted with all these old linux mags.

Now all I need is to find someone who wants lots of old Amiga and ZX Spectrum mags (!)

Cooking

pan of chilli

This is how much chilli I had to cook when I discovered the freezer had somehow been turned off and all the food was defrosted. Yum.

QEMU and kernel virtualisation

Following up on my recent post about QEMU, the kernel virtualisation changes are now in cvs. I am amazed. The speed at which this now runs must be close to native a lot of the time. I suggest anyone looking for a x86 on x86 virtualiser takes a look.

(Anyone trying this should note that the option to enable this is currently not displayed in the help text. You need to use “–kernel-qemu” to enable it.)

Well done to Fabrice and the other QEMU contributors. Not just for this kernel virtualisation, but all the other recent changes which are quickly making QEMU the best option available.

cfq and ionice in linux

For quite a while Jens Axboe’s cfq scheduler has supported io priorities for processes. I have been meaning to look at it for a while but never got round to it. Recently the io priorities support made it into mainline so I decided it was time to have a play.

I have only done some basic tests so far, but I am impressed. Processes set to “idle” really do stop dead in their tracks when any “normal” processes want the disk.

One thing that I found odd though was that normal users cannot reduce the priority of their processes to “idle.” That requires root authority. I even got to the point of changing it and asking Jens why it didn’t allow that. Of course it turns out there is a good reason and the code actually used to allow it but was changed to prevent possible DoS attacks.

I think the idea is that a user can use a idle process to lock resources that a high priority process wants but then run a normal priority process doing lots of io which means the idle one (and therefore the high priority one) will never run. In other words it needs to do priority inversion before my patch could go in. Which means work in the fs layer as well as the block layer.

Still, even without altering the io class, the user can change their io timeslice which is useful in itself.

QEMU upcoming changes.

I have been watching developments in QEMU for a while now. I sometimes use it to run win2k on my linux desktop to check if my mono developments work on the MS.NET environment.

I am interested in comments in a recent post by Fabrice about upcoming QEMU features.
In particular, the part about “new kqemu which virtualizes both user and kernel code” and the aim to “improve the performance to match (or exceed !) the performance of the other virtualizers”

Virtualising both user and kernel code is what vmware does. If qemu achieves anything approaching those speeds it will be amazing.