From mboxrd@z Thu Jan 1 00:00:00 1970 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-reply-to: Your message of "Fri, 13 Jun 2008 21:33:15 BST." From: Bakul Shah Date: Fri, 13 Jun 2008 16:01:21 -0700 Message-Id: <20080613230121.BA8645B46@mail.bitblocks.com> Subject: Re: [9fans] I/O load crashes Qemu Topicbox-Message-UUID: c02c0fe6-ead3-11e9-9d60-3106f5b1d025 On Fri, 13 Jun 2008 21:33:15 BST Charles Forsyth wrote: > >perhaps qemu-ide specific drivers need to be done. > > Many hosted OSs need custom made drivers to > > be used with a virtualizer. On a T42 running FreeBSD, a stock FreeBSD-4.11/qemu gets 18MB/s & plan9/qemu gets 3MB/s. Both tested by writing 100MB from /dev/zero to a file. Neither needs any special drivers. I think part of the performance problem is qemu emulates an early Intel ATA controller chip (PIIX3) and perhaps plan9 does not do certain optimizations. It would not be too hard to emulate a more modern controller. > i must say that my experience with VM/370 was otherwise, > for the standard devices. there were extensions you could access > if you liked, but the basic emulation was solid. the only restriction i reme > mber > was that you couldn't any longer dynamically modify channel programs > (by having a channel program read some blocks into memory that would > later be executed in the same channel program), but other systems > imposed a similar restriction on that hardware. > > the peculiar thing about the modern virtualisers/hypervisors etc is that > they require specialised drivers but are no easier (often harder) to drive th > an > actual hardware! it's all gone wrong! I don't think you can escape writing device emulation code for the virtualization layer (when the guest os diddles a device register, someone has to implement its semantics). If the emulated device is not the same as some real device, the guest os has to have a special drivers for it. IMHO a virtualizable processor is the necessary first step as it clears one's mind about what not to do in an efficient virtualizable IO architecture! Emulating grotty device registers with horrible side-effects is just too painful and one would be forced to abstract that out. Probably too late for that!