On Mon, Sep 12, 2011 at 7:31 PM, Sinha, Ani <ani.si...@tellabs.com> wrote: > > On Sep 11, 2011, at 6:34 AM, Stefan Hajnoczi wrote: > >> On Fri, Sep 09, 2011 at 07:45:17PM -0500, Sinha, Ani wrote: >>> So I am writing a virtIO driver for a device that supports blocking calls >>> like poll() etc. Now the front end paravirtualized driver mirrors the >>> request to the backend "host" qemu process that then does the actual call >>> on the host kernel on behalf of the guest. Now my question is, when I do a >>> blocking call from within the callback that I have registered when I >>> created the virtqueue, does it block the entire vcpu? If it does, do I have >>> to create an async context for it? Looking at virtio-net and virtio-block, >>> I can see the concept of bottom halves but I am not sure if this helps me >>> in any way. >> >> What device are you adding? It would help to share what you are trying >> to accomplish. > > > We are trying to paravirtualize the IPMI device (/dev/ipmi0).
>From http://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface: "An implementation of IPMI version 1.5 can communicate via a direct serial connection or via a side-band local area network (LAN) connection to a remote client." Why do you need a new virtio device? Can't you use virtio-serial? This is what other management channels are using for host<->guest agents. What features and use cases does paravirtualized IPMI provide? Stefan