On 17.05.2011, at 08:47, David Gibson wrote: > From: Alexey Kardashevskiy <aik@xxxxxxxxx> > > The recently added pseries machine does not currently support PCI > emulation. For the (upcoming) kvm case, this is quite difficult to do > because the preferred HV mode for the host kernel does not allow MMIO > emulation (a hardware limitation). > > Therefore, to support virtio devices, we implement a new virtio setup > protocol for PAPR guests. This is based loosely on the s390 and lguest > methods, using the PAPR hcalls for the virtio primitive operations, > and the PAPR device tree to advertise the virtio device resources to the > guest. > > This patch includes support for the virtio block, network, serial, and > balloon devices, and the 9p filesystem. > > The guest linux kernel should be updated as well in order to > support a new virtio setup. > > Supported devices are (below are QEMU command line switches): > > - virtio-blk - block device, at the moment works as "IDE": > usage: -drive file=test-virtio-blk.img,if=ide > > - virtio-net - network device > usage: -net nic,model=virtio-net > > - virtio-balloon - memory hot-swap device (at the moment of commit, power-kvm > did not support balloon) > usage: -device virtio-balloon-spapr > > - virtio-serial - serial bus controller > usage: -device virtio-serial-spapr \ > -chardev socket,id=CONSOLE,host=localhost,port=4444,server,telnet \ > -device virtconsole,chardev=CONSOLE > The first switch tells QEMU to create a serial bus device and next > 2 switches create "chardev" and virtual console device connected to > that "chardev". > > - virtio-9p - plan9 filesystem with ability to work over virtio transport > usage: -fsdev fstype=local,id=TAG,path=/home/aik/,security_model=none \ > -device virtio-9p-spapr,fsdev=TAG,mount_tag=TAG > where TAG is a tag which should be used later when mounting is linux as: > mount -t 9p -o trans=virtio TAG /mnt > > Configure for full emulation as: > ./configure --target-list=ppc64-softmmu --enable-attr > > Configure for power-kvm as: > ./configure --enable-kvm --target-list=ppc64-softmmu --enable-fdt \ > --cc="gcc -m64" \ > --kerneldir=/root/kheaders --enable-io-thread --enable-attr > > Note: --enable-attr is required for 9p support. On ppc64 systems, libattr > should be compiled and installed manually as it is not distributes in > 64bit packages. Before including such a patch, we should really discuss the desired interface for virtio on sPAPR. I personally would prefer if we could have a generic MMIO hypercall that the guest issues, so that we can simply use virtio-pci on sPAPR (and all the other PCI hardware). But at the end of the day, the steps should be as follows: 1) Discuss this on the virtualization ML 2) Send patches for the virtio documentation so the protocol has a spec (which we're lacking for s390 still) 3) Implement Linux side, upstream it 4) Upstream Qemu side Since I haven't seen 1-3, I'd like to defer this patch until the other points are good :) Alex _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization