Message ID | 1488519630-89058-5-git-send-email-wei.w.wang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Mar 03, 2017 at 01:40:29PM +0800, Wei Wang wrote: > From: Liang Li <liang.z.li@intel.com> > > Define the flags and head struct for a new host request virtual > queue. Guest can get requests from host and then responds to > them on this new virtual queue. > Host can make use of this virtqueue to request the guest to do > some operations, e.g. drop page cache, synchronize file system, > etc. The hypervisor can get some of guest's runtime information > through this virtual queue too, e.g. the guest's unused page > information, which can be used for live migration optimization. > > Signed-off-by: Liang Li <liang.z.li@intel.com> > Signed-off-by: Wei Wang <wei.w.wang@intel.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Mel Gorman <mgorman@techsingularity.net> > Cc: Michael S. Tsirkin <mst@redhat.com> > Cc: Paolo Bonzini <pbonzini@redhat.com> > Cc: Cornelia Huck <cornelia.huck@de.ibm.com> > Cc: Amit Shah <amit.shah@redhat.com> > Cc: Dave Hansen <dave.hansen@intel.com> > Cc: Andrea Arcangeli <aarcange@redhat.com> > Cc: David Hildenbrand <david@redhat.com> > Cc: Liang Li <liliang324@gmail.com> > Cc: Wei Wang <wei.w.wang@intel.com> I prefer this squashed into next patch makes review easier. > --- > 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 ed627b2..630b0ef 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_CHUNK_TRANSFER 3 /* Transfer pages in chunks */ > +#define VIRTIO_BALLOON_F_HOST_REQ_VQ 4 /* Host request virtqueue */ > > /* Size of a PFN in the balloon interface. */ > #define VIRTIO_BALLOON_PFN_SHIFT 12 > @@ -94,4 +95,25 @@ struct virtio_balloon_resp_hdr { > __le32 data_len; /* Payload len in bytes */ > }; > > +enum virtio_balloon_req_id { > + /* Get unused page information */ > + BALLOON_GET_UNUSED_PAGES, > +}; > + > +enum virtio_balloon_flag { > + /* Have more data for a request */ > + BALLOON_FLAG_CONT, > + /* No more data for a request */ > + BALLOON_FLAG_DONE, > +}; > + > +struct virtio_balloon_req_hdr { > + /* Used to distinguish different requests */ > + __le16 cmd; > + /* Reserved */ > + __le16 reserved[3]; > + /* Request parameter */ > + __le64 param; > +}; > + > #endif /* _LINUX_VIRTIO_BALLOON_H */ > -- > 2.7.4
diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h index ed627b2..630b0ef 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_CHUNK_TRANSFER 3 /* Transfer pages in chunks */ +#define VIRTIO_BALLOON_F_HOST_REQ_VQ 4 /* Host request virtqueue */ /* Size of a PFN in the balloon interface. */ #define VIRTIO_BALLOON_PFN_SHIFT 12 @@ -94,4 +95,25 @@ struct virtio_balloon_resp_hdr { __le32 data_len; /* Payload len in bytes */ }; +enum virtio_balloon_req_id { + /* Get unused page information */ + BALLOON_GET_UNUSED_PAGES, +}; + +enum virtio_balloon_flag { + /* Have more data for a request */ + BALLOON_FLAG_CONT, + /* No more data for a request */ + BALLOON_FLAG_DONE, +}; + +struct virtio_balloon_req_hdr { + /* Used to distinguish different requests */ + __le16 cmd; + /* Reserved */ + __le16 reserved[3]; + /* Request parameter */ + __le64 param; +}; + #endif /* _LINUX_VIRTIO_BALLOON_H */