From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36182) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1clSo4-0003pQ-33 for qemu-devel@nongnu.org; Tue, 07 Mar 2017 23:02:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1clSo2-0003P0-T8 for qemu-devel@nongnu.org; Tue, 07 Mar 2017 23:02:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48782) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1clSo2-0003OY-JL for qemu-devel@nongnu.org; Tue, 07 Mar 2017 23:02:30 -0500 Date: Wed, 8 Mar 2017 06:02:26 +0200 From: "Michael S. Tsirkin" Message-ID: <20170308060158-mutt-send-email-mst@kernel.org> References: <1488519630-89058-1-git-send-email-wei.w.wang@intel.com> <1488519630-89058-5-git-send-email-wei.w.wang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1488519630-89058-5-git-send-email-wei.w.wang@intel.com> Subject: Re: [Qemu-devel] [PATCH v7 kernel 4/5] virtio-balloon: define flags and head for host request vq List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wei Wang Cc: virtio-dev@lists.oasis-open.org, kvm@vger.kernel.org, qemu-devel@nongnu.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, Liang Li , Andrew Morton , Mel Gorman , Paolo Bonzini , Cornelia Huck , Amit Shah , Dave Hansen , Andrea Arcangeli , David Hildenbrand , Liang Li On Fri, Mar 03, 2017 at 01:40:29PM +0800, Wei Wang wrote: > From: Liang Li > > 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 > Signed-off-by: Wei Wang > Cc: Andrew Morton > Cc: Mel Gorman > Cc: Michael S. Tsirkin > Cc: Paolo Bonzini > Cc: Cornelia Huck > Cc: Amit Shah > Cc: Dave Hansen > Cc: Andrea Arcangeli > Cc: David Hildenbrand > Cc: Liang Li > Cc: Wei Wang 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