On Fri, Oct 21, 2016 at 02:24:39PM +0800, Liang Li wrote: > Define a new feature bit which supports a new virtual queue. This > new virtual qeuque is for information exchange between hypervisor > and guest. The VMM hypervisor can make use of this virtual queue > to request the guest do some operations, e.g. drop page cache, > synchronize file system, etc. Can we call this something more informative pls? host request vq? > And the VMM hypervisor can get some > of guest's runtime information through this virtual queue, e.g. the > guest's unused page information, which can be used for live migration > optimization. I guess the idea is that guest gets requests from host and then responds to them on this vq. Pls document. > > Signed-off-by: Liang Li <liang.z.li@xxxxxxxxx> > Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Cornelia Huck <cornelia.huck@xxxxxxxxxx> > Cc: Amit Shah <amit.shah@xxxxxxxxxx> > --- > include/uapi/linux/virtio_balloon.h | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h > index d3b182a..3a9d633 100644 > --- a/include/uapi/linux/virtio_balloon.h > +++ b/include/uapi/linux/virtio_balloon.h > @@ -35,6 +35,7 @@ > #define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */ > #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ > #define VIRTIO_BALLOON_F_PAGE_BITMAP 3 /* Send page info with bitmap */ > +#define VIRTIO_BALLOON_F_MISC_VQ 4 /* Misc info virtqueue */ > > /* Size of a PFN in the balloon interface. */ > #define VIRTIO_BALLOON_PFN_SHIFT 12 > @@ -101,4 +102,25 @@ struct balloon_bmap_hdr { > __virtio64 bmap_len; > }; > > +enum balloon_req_id { > + /* Get unused pages information */ unused page information > + BALLOON_GET_UNUSED_PAGES, > +}; > + > +enum balloon_flag { > + /* Have more data for a request */ > + BALLOON_FLAG_CONT, > + /* No more data for a request */ > + BALLOON_FLAG_DONE, > +}; is this a bit number or a value? Pls name consistently. > + > +struct balloon_req_hdr { > + /* Used to distinguish different request */ requests > + __virtio16 cmd; > + /* Reserved */ > + __virtio16 reserved[3]; > + /* Request parameter */ > + __virtio64 param; > +}; > + > #endif /* _LINUX_VIRTIO_BALLOON_H */ Prefix structs with virtio_ as well pls. Also, wouldn't it simplify code if we use __le for new structs? > -- > 1.8.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>