[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230509164528-mutt-send-email-mst@kernel.org>
Date: Tue, 9 May 2023 16:50:53 -0400
From: "Michael S. Tsirkin" <mst@...hat.com>
To: Yuanchu Xie <yuanchu@...gle.com>
Cc: David Hildenbrand <david@...hat.com>,
"Sudarshan Rajagopalan (QUIC)" <quic_sudaraja@...cinc.com>,
kai.huang@...el.com, hch@....de, jon@...anix.com,
SeongJae Park <sj@...nel.org>,
Shakeel Butt <shakeelb@...gle.com>,
Aneesh Kumar K V <aneesh.kumar@...ux.ibm.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Jason Wang <jasowang@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Johannes Weiner <hannes@...xchg.org>,
Michal Hocko <mhocko@...nel.org>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Muchun Song <muchun.song@...ux.dev>,
Yu Zhao <yuzhao@...gle.com>,
"Matthew Wilcox (Oracle)" <willy@...radead.org>,
Yosry Ahmed <yosryahmed@...gle.com>,
Vasily Averin <vasily.averin@...ux.dev>,
talumbau <talumbau@...gle.com>, linux-kernel@...r.kernel.org,
virtualization@...ts.linux-foundation.org, linux-mm@...ck.org,
cgroups@...r.kernel.org
Subject: Re: [RFC PATCH 2/2] virtio-balloon: Add Working Set reporting
On Wed, May 10, 2023 at 02:54:19AM +0800, Yuanchu Xie wrote:
> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h
> index ddaa45e723c4..06d0683d8d8c 100644
> --- a/include/uapi/linux/virtio_balloon.h
> +++ b/include/uapi/linux/virtio_balloon.h
Any changes to this have to be documented in the virtio spec
and be sent to virtio TC.
> @@ -37,6 +37,7 @@
> #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
> #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
> #define VIRTIO_BALLOON_F_REPORTING 5 /* Page reporting virtqueue */
> +#define VIRTIO_BALLOON_F_WS_REPORTING 6 /* Working Set Size reporting */
>
> /* Size of a PFN in the balloon interface. */
> #define VIRTIO_BALLOON_PFN_SHIFT 12
> @@ -59,6 +60,8 @@ struct virtio_balloon_config {
> };
> /* Stores PAGE_POISON if page poisoning is in use */
> __le32 poison_val;
> + /* Number of bins for Working Set report if in use. */
> + __le32 ws_num_bins;
working_set_ pls. eschew abbreviation.
Really __le32? Is 4G bins reasonable? what if it's 0?
> };
>
> #define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */
> @@ -116,4 +119,22 @@ struct virtio_balloon_stat {
> __virtio64 val;
> } __attribute__((packed));
>
> +enum virtio_balloon_ws_op {
> + VIRTIO_BALLOON_WS_REQUEST = 1,
> + VIRTIO_BALLOON_WS_CONFIG = 2,
> +};
what's this?
> +
> +struct virtio_balloon_ws {
document fields.
> +#define VIRTIO_BALLOON_WS_RECLAIMABLE 0
> +#define VIRTIO_BALLOON_WS_DISCARDABLE 1
what are these?
> + /* TODO: Provide additional detail on memory, e.g. reclaimable. */
Well? If we don't now hypervisors will come to depend on
this being broken.
> + __virtio16 tag;
> + /* TODO: Support per-NUMA node reports. */
Same. This is ABI we can't merge with unaddressed TODO items.
> + __virtio16 node_id;
> + uint8_t reserved[4];
> + __virtio64 idle_age_ms;
> + /* Track separately for ANON_AND_FILE. */
What does this mean?
> + __virtio64 memory_size_bytes[2];
> +};
> +
> #endif /* _LINUX_VIRTIO_BALLOON_H */
Use LE for new features please.
--
MST
Powered by blists - more mailing lists