qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 kernel 2/5] virtio-balloon: define new featur


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v6 kernel 2/5] virtio-balloon: define new feature bit and head struct
Date: Thu, 12 Jan 2017 21:43:15 +0200

On Wed, Dec 21, 2016 at 02:52:25PM +0800, Liang Li wrote:
> Add a new feature which supports sending the page information
> with range array. The current implementation uses PFNs array,
> which is not very efficient. Using ranges can improve the
> performance of inflating/deflating significantly.
> 
> Signed-off-by: Liang Li <address@hidden>
> Cc: Michael S. Tsirkin <address@hidden>
> Cc: Paolo Bonzini <address@hidden>
> Cc: Cornelia Huck <address@hidden>
> Cc: Amit Shah <address@hidden>
> Cc: Dave Hansen <address@hidden>
> Cc: Andrea Arcangeli <address@hidden>
> Cc: David Hildenbrand <address@hidden>
> ---
>  include/uapi/linux/virtio_balloon.h | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/include/uapi/linux/virtio_balloon.h 
> b/include/uapi/linux/virtio_balloon.h
> index 343d7dd..2f850bf 100644
> --- a/include/uapi/linux/virtio_balloon.h
> +++ b/include/uapi/linux/virtio_balloon.h
> @@ -34,10 +34,14 @@
>  #define VIRTIO_BALLOON_F_MUST_TELL_HOST      0 /* Tell before reclaiming 
> pages */
>  #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_RANGE  3 /* Send page info with ranges */
>  
>  /* Size of a PFN in the balloon interface. */
>  #define VIRTIO_BALLOON_PFN_SHIFT 12
>  
> +/* Bits width for the length of the pfn range */

What does this mean? Couldn't figure it out.

> +#define VIRTIO_BALLOON_NR_PFN_BITS 12
> +
>  struct virtio_balloon_config {
>       /* Number of pages host wants Guest to give up. */
>       __u32 num_pages;
> @@ -82,4 +86,12 @@ struct virtio_balloon_stat {
>       __virtio64 val;
>  } __attribute__((packed));
>  
> +/* Response header structure */
> +struct virtio_balloon_resp_hdr {
> +     __le64 cmd : 8; /* Distinguish different requests type */
> +     __le64 flag: 8; /* Mark status for a specific request type */
> +     __le64 id : 16; /* Distinguish requests of a specific type */
> +     __le64 data_len: 32; /* Length of the following data, in bytes */

This use of __le64 makes no sense.  Just use u8/le16/le32 pls.

> +};
> +
>  #endif /* _LINUX_VIRTIO_BALLOON_H */
> -- 
> 1.9.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]