On 6/4/19 12:33 PM, Alexander Duyck wrote: > On Mon, Jun 3, 2019 at 10:04 AM Nitesh Narayan Lal <nitesh@xxxxxxxxxx> wrote: >> Enables the kernel to negotiate VIRTIO_BALLOON_F_HINTING feature with the >> host. If it is available and page_hinting_flag is set to true, page_hinting >> is enabled and its callbacks are configured along with the max_pages count >> which indicates the maximum number of pages that can be isolated and hinted >> at a time. Currently, only free pages of order >= (MAX_ORDER - 2) are >> reported. To prevent any false OOM max_pages count is set to 16. >> >> By default page_hinting feature is enabled and gets loaded as soon >> as the virtio-balloon driver is loaded. However, it could be disabled >> by writing the page_hinting_flag which is a virtio-balloon parameter. >> >> Signed-off-by: Nitesh Narayan Lal <nitesh@xxxxxxxxxx> >> --- >> drivers/virtio/virtio_balloon.c | 112 +++++++++++++++++++++++++++- >> include/uapi/linux/virtio_balloon.h | 14 ++++ >> 2 files changed, 125 insertions(+), 1 deletion(-) > <snip> > >> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h >> index a1966cd7b677..25e4f817c660 100644 >> --- a/include/uapi/linux/virtio_balloon.h >> +++ b/include/uapi/linux/virtio_balloon.h >> @@ -29,6 +29,7 @@ >> #include <linux/virtio_types.h> >> #include <linux/virtio_ids.h> >> #include <linux/virtio_config.h> >> +#include <linux/page_hinting.h> > So this include breaks the build and from what I can tell it isn't > really needed. I deleted it in order to be able to build without > warnings about the file not being included in UAPI. I agree here, it is not required any more. > >> /* The feature bitmap for virtio balloon */ >> #define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ >> @@ -36,6 +37,7 @@ >> #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ >> #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_HINTING 5 /* Page hinting virtqueue */ >> >> /* Size of a PFN in the balloon interface. */ >> #define VIRTIO_BALLOON_PFN_SHIFT 12 >> @@ -108,4 +110,16 @@ struct virtio_balloon_stat { >> __virtio64 val; >> } __attribute__((packed)); >> >> +#ifdef CONFIG_PAGE_HINTING >> +/* >> + * struct hinting_data- holds the information associated with hinting. >> + * @phys_add: physical address associated with a page or the array holding >> + * the array of isolated pages. >> + * @size: total size associated with the phys_addr. >> + */ >> +struct hinting_data { >> + __virtio64 phys_addr; >> + __virtio32 size; >> +}; >> +#endif >> #endif /* _LINUX_VIRTIO_BALLOON_H */ >> -- >> 2.21.0 >> -- Regards Nitesh
Attachment:
signature.asc
Description: OpenPGP digital signature