at 12:48 PM, Nadav Amit <namit@xxxxxxxxxx> wrote: > at 12:13 PM, Nadav Amit <namit@xxxxxxxxxx> wrote: > >> Introduce interfaces for ballooning enqueueing and dequeueing of a list >> of pages. These interfaces reduce the overhead of storing and restoring >> IRQs by batching the operations. In addition they do not panic if the >> list of pages is empty. >> >> Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx> >> Cc: Jason Wang <jasowang@xxxxxxxxxx> >> Cc: linux-mm@xxxxxxxxx >> Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx >> Reviewed-by: Xavier Deguillard <xdeguillard@xxxxxxxxxx> >> Signed-off-by: Nadav Amit <namit@xxxxxxxxxx> >> --- >> include/linux/balloon_compaction.h | 4 + >> mm/balloon_compaction.c | 139 +++++++++++++++++++++-------- >> 2 files changed, 105 insertions(+), 38 deletions(-) >> >> diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h >> index 53051f3d8f25..2c5a8e09e413 100644 >> --- a/include/linux/balloon_compaction.h >> +++ b/include/linux/balloon_compaction.h >> @@ -72,6 +72,10 @@ extern struct page *balloon_page_alloc(void); >> extern void balloon_page_enqueue(struct balloon_dev_info *b_dev_info, >> struct page *page); >> extern struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info); >> +extern void balloon_page_list_enqueue(struct balloon_dev_info *b_dev_info, >> + struct list_head *pages); >> +extern int balloon_page_list_dequeue(struct balloon_dev_info *b_dev_info, >> + struct list_head *pages, int n_req_pages); > > <snip> > > Michael, can we get you ack for this patch (as well as 15/20)? Ping?