On 29.06.2011, at 15:59, Wei Liu <l...@liuw.name> wrote: > Hi, QEMU folks > > I know that I might have a bad title for this post, but I just don't > have better idea for the title. > > I'm developing virtio support for Xen pv guest, hoping to reuse the > virtio infrastructure in qemu, i.e. I'm planning to use qemu as > "virtio backend" for Xen pv. And qemu can be run as pv backend if > proper "machine" option is given. > > Maybe you've known that Xen pv guest utilizes Xenbus/Xenstore to > configure its paravirt devices. So I'm to configure virtio devices > with Xenbus/Xenstore as well. But in nowdays XenDevice in qemu does > not include a DeviceState. To my understanding, it is not connected to > qemu's internal buses or whatever (correct me if I'm wrong, I'm > relatively new to qemu).
I'm not a huge fan of adding multiple different transports for virtio if we don't have to. IIRC Xen PV guests can do PCI device assignment, right? That means there is a PCI bus for them which we could reuse to run virtio-pci on. By then, you'd get all the virtio code for free and don't have to worry about maintaining yet another transport (which _is_ cumbersome) Alex > > Here is the problem, say I'm to implement virtio nic for Xen pv guest, > I use Xenbus to probe and initialize the device. When doing > initialization, I am to reuse virtio_net_init, which takes DeviceState > as the first argument -- but I just don't have one in XenDevice. All I > need is to use qemu's virtio infrastructure. > > What's the purpose of this DeviceState argument? > > If I just construct my own DeviceState and pass it to virtio_net_init, > what will happen? Will qemu emulates virtio nic as usual? > > Thanks. > > Wei. >