Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-07 Thread Wei Wang
On 08/03/2017 05:11 PM, Michal Hocko wrote: On Thu 03-08-17 14:38:18, Wei Wang wrote: This is just too ugly and wrong actually. Never provide struct page pointers outside of the zone->lock. What I've had in mind was to simply walk free lists of the suitable order and call the callback

Re: [PATCH RESEND] mm: don't zero ballooned pages

2017-08-07 Thread Wei Wang
On 08/07/2017 04:44 PM, David Hildenbrand wrote: On 03.08.2017 13:59, Wei Wang wrote: This patch is a revert of 'commit bb01b64cfab7 ("mm/balloon_compaction.c: enqueue zero page to balloon device")' Ballooned pages will be marked as MADV_DONTNEED by the hypervisor and shoul

Re: [PATCH v13 1/5] Introduce xbitmap

2017-08-06 Thread Wei Wang
On 08/03/2017 02:38 PM, Wei Wang wrote: From: Matthew Wilcox The eXtensible Bitmap is a sparse bitmap representation which is efficient for set bits which tend to cluster. It supports up to 'unsigned long' worth of bits, and this commit adds the bare bones -- xb_set_bit(), xb_clear

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-04 Thread Wei Wang
On 08/04/2017 04:24 PM, Michal Hocko wrote: For our use case, the callback just puts the reported page block to the ring, then returns. If the ring is full as the host is busy, then I think it should skip this one, and just return. Because: A. This is an optimization feature, losing a coup

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-04 Thread Wei Wang
On 08/04/2017 03:53 PM, Michal Hocko wrote: On Fri 04-08-17 00:02:01, Michael S. Tsirkin wrote: On Thu, Aug 03, 2017 at 03:20:09PM +, Wang, Wei W wrote: On Thursday, August 3, 2017 9:51 PM, Michal Hocko: As I've said earlier. Start simple optimize incrementally with some numbers to justify

Re: [PATCH v13 5/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ

2017-08-03 Thread Wei Wang
On 08/03/2017 09:05 PM, Pankaj Gupta wrote: On 08/03/2017 04:13 PM, Pankaj Gupta wrote: +/* Allocate space for find_vqs parameters */ +vqs = kcalloc(nvqs, sizeof(*vqs), GFP_KERNEL); +if (!vqs) +goto err_vq; +callbacks = kmalloc_array(nvqs, sizeof(*

Re: [PATCH RESEND] mm: don't zero ballooned pages

2017-08-03 Thread Wei Wang
On 08/03/2017 08:54 PM, Michal Hocko wrote: On Thu 03-08-17 19:59:17, Wei Wang wrote: This patch is a revert of 'commit bb01b64cfab7 ("mm/balloon_compaction.c: enqueue zero page to balloon device")' Ballooned pages will be marked as MADV_DONTNEED by the hypervisor and shoul

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-03 Thread Wei Wang
On 08/03/2017 08:41 PM, Michal Hocko wrote: On Thu 03-08-17 20:11:58, Wei Wang wrote: On 08/03/2017 07:28 PM, Michal Hocko wrote: On Thu 03-08-17 19:27:19, Wei Wang wrote: On 08/03/2017 06:44 PM, Michal Hocko wrote: On Thu 03-08-17 18:42:15, Wei Wang wrote: On 08/03/2017 05:11 PM, Michal

Re: [PATCH v13 5/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ

2017-08-03 Thread Wei Wang
On 08/03/2017 04:13 PM, Pankaj Gupta wrote: +/* Allocate space for find_vqs parameters */ +vqs = kcalloc(nvqs, sizeof(*vqs), GFP_KERNEL); +if (!vqs) +goto err_vq; +callbacks = kmalloc_array(nvqs, sizeof(*callbacks), GFP_KERNEL); +if (!callb

[PATCH RESEND] mm: don't zero ballooned pages

2017-08-03 Thread Wei Wang
oned pages, which is very time consuming when the page amount is large. The ongoing fast balloon tests show that the time to balloon 7G pages is increased from ~491ms to 2.8 seconds with __GFP_ZERO added. So, this patch removes the flag. Signed-off-by: Wei Wang Cc: Michal Hocko Cc: Mi

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-03 Thread Wei Wang
On 08/03/2017 07:28 PM, Michal Hocko wrote: On Thu 03-08-17 19:27:19, Wei Wang wrote: On 08/03/2017 06:44 PM, Michal Hocko wrote: On Thu 03-08-17 18:42:15, Wei Wang wrote: On 08/03/2017 05:11 PM, Michal Hocko wrote: On Thu 03-08-17 14:38:18, Wei Wang wrote: [...] +static int

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-03 Thread Wei Wang
On 08/03/2017 06:44 PM, Michal Hocko wrote: On Thu 03-08-17 18:42:15, Wei Wang wrote: On 08/03/2017 05:11 PM, Michal Hocko wrote: On Thu 03-08-17 14:38:18, Wei Wang wrote: [...] +static int report_free_page_block(struct zone *zone, unsigned int order

Re: [PATCH v13 4/5] mm: support reporting free page blocks

2017-08-03 Thread Wei Wang
On 08/03/2017 05:11 PM, Michal Hocko wrote: On Thu 03-08-17 14:38:18, Wei Wang wrote: This patch adds support to walk through the free page blocks in the system and report them via a callback function. Some page blocks may leave the free list after the report function returns, so it is the

[PATCH v13 4/5] mm: support reporting free page blocks

2017-08-02 Thread Wei Wang
ff-by: Wei Wang Signed-off-by: Liang Li Cc: Michal Hocko Cc: Michael S. Tsirkin --- include/linux/mm.h | 7 include/linux/mmzone.h | 5 +++ mm/page_alloc.c| 109 + 3 files changed, 121 insertions(+) diff --git a/include/linux/m

[PATCH v13 3/5] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-08-02 Thread Wei Wang
() in chunks rather than page by page. With this new feature, the above ballooning process takes ~541ms resulting in an improvement of ~87%. TODO: optimize stage 1) by allocating/freeing a chunk of pages instead of a single page each time. Signed-off-by: Wei Wang Signed-off-by: Liang Li Suggested

[PATCH v13 0/5] Virtio-balloon Enhancement

2017-08-02 Thread Wei Wang
two. 2) re-write the virtio-balloon implementation patch. 3) commit changes 4) patch re-org Matthew Wilcox (1): Introduce xbitmap Wei Wang (4): xbitmap: add xb_find_next_bit() and xb_zero() virtio-balloon: VIRTIO_BALLOON_F_SG mm: support reporting free page blocks virtio-balloon: VIRTIO_BALL

[PATCH v13 5/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ

2017-08-02 Thread Wei Wang
Add a new vq to report hints of guest free pages to the host. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- drivers/virtio/virtio_balloon.c | 164 ++-- include/uapi/linux/virtio_balloon.h | 1 + 2 files changed, 140 insertions(+), 25 deletions

[PATCH v13 1/5] Introduce xbitmap

2017-08-02 Thread Wei Wang
y: Matthew Wilcox Signed-off-by: Wei Wang --- include/linux/radix-tree.h | 2 + include/linux/xbitmap.h| 49 lib/radix-tree.c | 139 - 3 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 include/linux

[PATCH v13 2/5] xbitmap: add xb_find_next_bit() and xb_zero()

2017-08-02 Thread Wei Wang
xb_find_next_bit() supports to find the next "1" or "0" bit in the given range. xb_zero() supports to zero the given range of bits. Signed-off-by: Wei Wang --- include/linux/xbitmap.h | 4 lib/radix-tree.c| 28 2 files changed, 32

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-31 Thread Wei Wang
On 07/31/2017 12:20 AM, Michael S. Tsirkin wrote: On Sun, Jul 30, 2017 at 07:18:33PM +0300, Michael S. Tsirkin wrote: On Sun, Jul 30, 2017 at 05:59:17AM +, Wang, Wei W wrote: That's a hypervisor implementation detail. From guest point of view, discarding contents can not be distinguished fro

Re: [PATCH] mm: don't zero ballooned pages

2017-07-31 Thread Wei Wang
On 07/31/2017 03:43 PM, Michal Hocko wrote: On Mon 31-07-17 15:41:49, Wei Wang wrote: On 07/31/2017 02:55 PM, Michal Hocko wrote: On Mon 31-07-17 12:13:33, Wei Wang wrote: Ballooned pages will be marked as MADV_DONTNEED by the hypervisor and shouldn't be given to the host ksmd to scan.

Re: [PATCH] mm: don't zero ballooned pages

2017-07-31 Thread Wei Wang
On 07/31/2017 02:55 PM, Michal Hocko wrote: On Mon 31-07-17 12:13:33, Wei Wang wrote: Ballooned pages will be marked as MADV_DONTNEED by the hypervisor and shouldn't be given to the host ksmd to scan. Could you point me where this MADV_DONTNEED is done, please? Sure. It's d

[PATCH] mm: don't zero ballooned pages

2017-07-30 Thread Wei Wang
on 7G pages is increased from ~491ms to 2.8 seconds with __GFP_ZERO added. So, this patch removes the flag. Signed-off-by: Wei Wang --- mm/balloon_compaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index 9075aa5..b0

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-29 Thread Wei Wang
On 07/29/2017 07:08 AM, Michael S. Tsirkin wrote: On Thu, Jul 27, 2017 at 10:50:11AM +0800, Wei Wang wrote: OK I thought this over. While we might need these new APIs in the future, I think that at the moment, there's a way to implement this feature that is significantly simpler. Just add

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-28 Thread Wei Wang
On 07/12/2017 08:40 PM, Wei Wang wrote: Add a new feature, VIRTIO_BALLOON_F_SG, which enables to transfer a chunk of ballooned (i.e. inflated/deflated) pages using scatter-gather lists to the host. The implementation of the previous virtio-balloon is not very efficient, because the balloon

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-26 Thread Wei Wang
On 07/27/2017 01:02 AM, Michael S. Tsirkin wrote: On Wed, Jul 26, 2017 at 11:48:41AM +0800, Wei Wang wrote: On 07/23/2017 09:45 AM, Michael S. Tsirkin wrote: On Fri, Jul 14, 2017 at 03:12:43PM +0800, Wei Wang wrote: On 07/14/2017 04:19 AM, Michael S. Tsirkin wrote: On Thu, Jul 13, 2017 at 03

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-26 Thread Wei Wang
On 07/26/2017 06:24 PM, Michal Hocko wrote: On Wed 26-07-17 10:22:23, Wei Wang wrote: On 07/25/2017 10:53 PM, Michal Hocko wrote: On Tue 25-07-17 14:47:16, Wang, Wei W wrote: On Tuesday, July 25, 2017 8:42 PM, hal Hocko wrote: On Tue 25-07-17 19:56:24, Wei Wang wrote: On 07/25/2017 07:25 PM

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-25 Thread Wei Wang
On 07/23/2017 09:45 AM, Michael S. Tsirkin wrote: On Fri, Jul 14, 2017 at 03:12:43PM +0800, Wei Wang wrote: On 07/14/2017 04:19 AM, Michael S. Tsirkin wrote: On Thu, Jul 13, 2017 at 03:42:35PM +0800, Wei Wang wrote: On 07/12/2017 09:56 PM, Michael S. Tsirkin wrote: So the way I see it, there

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-25 Thread Wei Wang
On 07/25/2017 10:53 PM, Michal Hocko wrote: On Tue 25-07-17 14:47:16, Wang, Wei W wrote: On Tuesday, July 25, 2017 8:42 PM, hal Hocko wrote: On Tue 25-07-17 19:56:24, Wei Wang wrote: On 07/25/2017 07:25 PM, Michal Hocko wrote: On Tue 25-07-17 17:32:00, Wei Wang wrote: On 07/24/2017 05:00 PM

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-25 Thread Wei Wang
On 07/25/2017 07:25 PM, Michal Hocko wrote: On Tue 25-07-17 17:32:00, Wei Wang wrote: On 07/24/2017 05:00 PM, Michal Hocko wrote: On Wed 19-07-17 20:01:18, Wei Wang wrote: On 07/19/2017 04:13 PM, Michal Hocko wrote: [... All you should need is the check for the page reference count, no? I

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-25 Thread Wei Wang
On 07/24/2017 05:00 PM, Michal Hocko wrote: On Wed 19-07-17 20:01:18, Wei Wang wrote: On 07/19/2017 04:13 PM, Michal Hocko wrote: [... All you should need is the check for the page reference count, no? I assume you do some sort of pfn walk and so you should be able to get an access to the

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-19 Thread Wei Wang
On 07/19/2017 04:13 PM, Michal Hocko wrote: On Tue 18-07-17 10:12:14, Wei Wang wrote: [...] Probably I should have included the introduction of the usages in the log. Hope it is not too later to explain here: Yes this should have been described in the cover. OK, I will do it in the next

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-17 Thread Wei Wang
On 07/17/2017 11:24 PM, Michal Hocko wrote: On Fri 14-07-17 22:17:13, Michael S. Tsirkin wrote: On Fri, Jul 14, 2017 at 02:30:23PM +0200, Michal Hocko wrote: On Wed 12-07-17 20:40:19, Wei Wang wrote: This patch adds support for reporting blocks of pages on the free list specified by the

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-14 Thread Wei Wang
On 07/14/2017 04:19 AM, Michael S. Tsirkin wrote: On Thu, Jul 13, 2017 at 03:42:35PM +0800, Wei Wang wrote: On 07/12/2017 09:56 PM, Michael S. Tsirkin wrote: So the way I see it, there are several issues: - internal wait - forces multiple APIs like kick/kick_sync note how kick_sync can

Re: [PATCH v12 8/8] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-07-13 Thread Wei Wang
On 07/13/2017 08:22 AM, Michael S. Tsirkin wrote: On Wed, Jul 12, 2017 at 08:40:21PM +0800, Wei Wang wrote: Add a new vq, cmdq, to handle requests between the device and driver. This patch implements two commands sent from the device and handled in the driver. 1

Re: [virtio-dev] Re: [PATCH v12 7/8] mm: export symbol of next_zone and first_online_pgdat

2017-07-13 Thread Wei Wang
On 07/13/2017 08:16 AM, Michael S. Tsirkin wrote: On Wed, Jul 12, 2017 at 08:40:20PM +0800, Wei Wang wrote: This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. ... for use by virtio balloon. With this patch, other kernel modules can also use the

Re: [PATCH v12 6/8] mm: support reporting free page blocks

2017-07-13 Thread Wei Wang
On 07/13/2017 08:33 AM, Michael S. Tsirkin wrote: On Wed, Jul 12, 2017 at 08:40:19PM +0800, Wei Wang wrote: This patch adds support for reporting blocks of pages on the free list specified by the caller. As pages can leave the free list during this call or immediately afterwards, they are not

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-13 Thread Wei Wang
On 07/12/2017 09:56 PM, Michael S. Tsirkin wrote: So the way I see it, there are several issues: - internal wait - forces multiple APIs like kick/kick_sync note how kick_sync can fail but your code never checks return code - need to re-write the last descriptor - might not work for altern

Re: [PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-12 Thread Wei Wang
On 07/12/2017 09:06 PM, Michael S. Tsirkin wrote: On Wed, Jul 12, 2017 at 08:40:18PM +0800, Wei Wang wrote: diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 28b0e96..9f27101 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -57,8 +57,28 @@ int

Re: [virtio-dev] Re: [PATCH v11 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS

2017-07-12 Thread Wei Wang
Hi Matthew, On 06/28/2017 11:04 PM, Matthew Wilcox wrote: On Thu, Jun 15, 2017 at 04:10:17PM +0800, Wei Wang wrote: So you still have a home-grown bitmap. I'd like to know why isn't xbitmap suggested for this purpose by Matthew Wilcox appropriate. Please add a comment expl

Re: [virtio-dev] Re: [PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-07-12 Thread Wei Wang
On 06/28/2017 11:01 PM, Michael S. Tsirkin wrote: On Thu, Jun 22, 2017 at 04:40:39PM +0800, Wei Wang wrote: On 06/21/2017 08:28 PM, Michael S. Tsirkin wrote: On Wed, Jun 21, 2017 at 11:28:00AM +0800, Wei Wang wrote: On 06/21/2017 12:18 AM, Michael S. Tsirkin wrote: On Fri, Jun 09, 2017 at 06

[PATCH v12 6/8] mm: support reporting free page blocks

2017-07-12 Thread Wei Wang
function was invoked. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- include/linux/mm.h | 5 +++ mm/page_alloc.c| 96 ++ 2 files changed, 101 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 46b9ac5..76cb433

[PATCH v12 3/8] Introduce xbitmap

2017-07-12 Thread Wei Wang
y: Matthew Wilcox Signed-off-by: Wei Wang --- include/linux/radix-tree.h | 2 + include/linux/xbitmap.h| 49 lib/radix-tree.c | 138 - 3 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 include/linux

[PATCH v12 7/8] mm: export symbol of next_zone and first_online_pgdat

2017-07-12 Thread Wei Wang
This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. Signed-off-by: Wei Wang --- mm/mmzone.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmzone.c b/mm/mmzone.c index a51c0a6..08a2a3a 100644 --- a/mm/mmzone.c +++ b/mm/mmzone.c @@ -13,6 +13,7

[PATCH v12 8/8] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-07-12 Thread Wei Wang
END_USE() to lock on each vq operation. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- drivers/virtio/virtio_balloon.c | 245 ++-- drivers/virtio/virtio_ring.c| 25 +++- include/linux/virtio.h | 2 + include/uapi/linux/virtio_balloon.h

[PATCH v12 2/8] virtio-balloon: coding format cleanup

2017-07-12 Thread Wei Wang
Clean up the comment format. Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 7f38ae6..f0b3a0b 100644 --- a/drivers/virtio

[PATCH v12 4/8] xbitmap: add xb_find_next_bit() and xb_zero()

2017-07-12 Thread Wei Wang
xb_find_next_bit() is added to support find the next "1" or "0" bit in the given range. xb_zero() is added to support zero the given range of bits. Signed-off-by: Wei Wang --- include/linux/xbitmap.h | 4 lib/radix-tree.c| 26 ++

[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG

2017-07-12 Thread Wei Wang
madvise() in chunks rather than page by page. With this new feature, the above ballooning process takes ~491ms resulting in an improvement of ~88%. TODO: optimize stage 1) by allocating/freeing a chunk of pages instead of a single page each time. Signed-off-by: Wei Wang Signed-off-by: Liang Li

[PATCH v12 1/8] virtio-balloon: deflate via a page list

2017-07-12 Thread Wei Wang
From: Liang Li This patch saves the deflated pages to a list, instead of the PFN array. Accordingly, the balloon_pfn_to_page() function is removed. Signed-off-by: Liang Li Signed-off-by: Michael S. Tsirkin Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 22

[PATCH v12 0/8] Virtio-balloon Enhancement

2017-07-12 Thread Wei Wang
Matthew Wilcox (1): Introduce xbitmap Wei Wang (6): virtio-balloon: coding format cleanup xbitmap: add xb_find_next_bit() and xb_zero() virtio-balloon: VIRTIO_BALLOON_F_SG mm: support reporting free page blocks mm: export symbol of next_zone and first_online_pgdat

Re: [virtio-dev] Re: [PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-06-22 Thread Wei Wang
On 06/21/2017 08:28 PM, Michael S. Tsirkin wrote: On Wed, Jun 21, 2017 at 11:28:00AM +0800, Wei Wang wrote: On 06/21/2017 12:18 AM, Michael S. Tsirkin wrote: On Fri, Jun 09, 2017 at 06:41:41PM +0800, Wei Wang wrote: - if (!virtqueue_indirect_desc_table_add(vq, desc, num)) { + if

Re: [Qemu-devel] [PATCH v11 4/6] mm: function to offer a page block on the free list

2017-06-21 Thread Wei Wang
On 06/21/2017 01:29 AM, Rik van Riel wrote: On Tue, 2017-06-20 at 18:49 +0200, David Hildenbrand wrote: On 20.06.2017 18:44, Rik van Riel wrote: Nitesh Lal (on the CC list) is working on a way to efficiently batch recently freed pages for free page hinting to the hypervisor. If that is done ef

Re: [virtio-dev] Re: [PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-06-20 Thread Wei Wang
On 06/21/2017 12:18 AM, Michael S. Tsirkin wrote: On Fri, Jun 09, 2017 at 06:41:41PM +0800, Wei Wang wrote: - if (!virtqueue_indirect_desc_table_add(vq, desc, num)) { + if (!virtqueue_indirect_desc_table_add(vq, desc, *num)) { virtqueue_kick(vq

Re: [virtio-dev] Re: [PATCH v11 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS

2017-06-15 Thread Wei Wang
On 06/14/2017 01:56 AM, Michael S. Tsirkin wrote: On Fri, Jun 09, 2017 at 06:41:38PM +0800, Wei Wang wrote: Add a new feature, VIRTIO_BALLOON_F_PAGE_CHUNKS, which enables the transfer of the ballooned (i.e. inflated/deflated) pages in chunks to the host. so now these chunks are just s/g list

Re: [PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-06-13 Thread Wei Wang
On 06/12/2017 10:07 PM, Dave Hansen wrote: On 06/09/2017 03:41 AM, Wei Wang wrote: + for_each_populated_zone(zone) { + for (order = MAX_ORDER - 1; order > 0; order--) { + for (migratetype = 0; migratetype < MIGRATE

Re: [PATCH v11 4/6] mm: function to offer a page block on the free list

2017-06-12 Thread Wei Wang
On 06/13/2017 04:54 AM, Dave Hansen wrote: On 06/12/2017 01:34 PM, Michael S. Tsirkin wrote: On Mon, Jun 12, 2017 at 09:42:36AM -0700, Dave Hansen wrote: On 06/12/2017 09:28 AM, Michael S. Tsirkin wrote: The hypervisor is going to throw away the contents of these pages, right? It should be ca

[PATCH v11 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS

2017-06-09 Thread Wei Wang
: Wei Wang Signed-off-by: Liang Li Suggested-by: Michael S. Tsirkin --- drivers/virtio/virtio_balloon.c | 418 +--- drivers/virtio/virtio_ring.c| 120 ++- include/linux/virtio.h | 7 + include/uapi/linux/virtio_balloon.h | 1

[PATCH v11 5/6] mm: export symbol of next_zone and first_online_pgdat

2017-06-09 Thread Wei Wang
This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. Signed-off-by: Wei Wang --- mm/mmzone.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmzone.c b/mm/mmzone.c index a51c0a6..08a2a3a 100644 --- a/mm/mmzone.c +++ b/mm/mmzone.c @@ -13,6 +13,7

[PATCH v11 4/6] mm: function to offer a page block on the free list

2017-06-09 Thread Wei Wang
Add a function to find a page block on the free list specified by the caller. Pages from the page block may be used immediately after the function returns. The caller is responsible for detecting or preventing the use of such pages. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- include

[PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ

2017-06-09 Thread Wei Wang
used when the cmdq mechanism is enabled. 2) cmd VIRTIO_BALLOON_CMDQ_REPORT_UNUSED_PAGES: this command is used to report the guest unused pages to the host. Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 363 include/uapi/linux

[PATCH v11 0/6] Virtio-balloon Enhancement

2017-06-09 Thread Wei Wang
commands to report memory stats (replace the old statq mechanism) and report guest unused pages. Liang Li (1): virtio-balloon: deflate via a page list Wei Wang (5): virtio-balloon: coding format cleanup virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS mm: function to offer a page block on the free

[PATCH v11 1/6] virtio-balloon: deflate via a page list

2017-06-09 Thread Wei Wang
From: Liang Li This patch saves the deflated pages to a list, instead of the PFN array. Accordingly, the balloon_pfn_to_page() function is removed. Signed-off-by: Liang Li Signed-off-by: Michael S. Tsirkin Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 22

[PATCH v11 2/6] virtio-balloon: coding format cleanup

2017-06-09 Thread Wei Wang
Clean up the comment format. Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 4a9f307..ecb64e9 100644 --- a/drivers/virtio

Re: [virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS

2017-05-08 Thread Wei Wang
On 05/09/2017 01:40 AM, Michael S. Tsirkin wrote: On Sun, May 07, 2017 at 04:19:28AM +, Wang, Wei W wrote: On 05/06/2017 06:26 AM, Michael S. Tsirkin wrote: On Thu, Apr 27, 2017 at 02:31:49PM +0800, Wei Wang wrote: On 04/27/2017 07:20 AM, Michael S. Tsirkin wrote: On Wed, Apr 26, 2017 at

[PATCH v10 4/6] mm: function to offer a page block on the free list

2017-05-04 Thread Wei Wang
Add a function to find a page block on the free list specified by the caller. Pages from the page block may be used immediately after the function returns. The caller is responsible for detecting or preventing the use of such pages. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- include

[PATCH v10 6/6] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ

2017-05-04 Thread Wei Wang
offers to the device the guest unused pages. Tests have shown that skipping the transfer of unused pages of a 32G idle guest can get the live migration time reduced to 1/8. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- drivers/virtio/virtio_balloon.c | 299

[PATCH v10 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS

2017-05-04 Thread Wei Wang
address translation and madvise() in chunks rather than page by page. With this new feature, the above ballooning process takes ~590ms resulting in an improvement of ~85%. TODO: optimize stage 1) by allocating/freeing a chunk of pages instead of a single page each time. Signed-off-by: Wei Wang Signed

[PATCH v10 5/6] mm: export symbol of next_zone and first_online_pgdat

2017-05-04 Thread Wei Wang
This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. Signed-off-by: Wei Wang --- mm/mmzone.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmzone.c b/mm/mmzone.c index a51c0a6..08a2a3a 100644 --- a/mm/mmzone.c +++ b/mm/mmzone.c @@ -13,6 +13,7

[PATCH v10 0/6] Extend virtio-balloon for fast (de)inflating & fast live migration

2017-05-04 Thread Wei Wang
her in the previous implementation; 2) Simpler function to get the free page block. v7->v8: 1) Use only one chunk format, instead of two. 2) re-write the virtio-balloon implementation patch. 3) commit changes 4) patch re-org Liang Li (1): virtio-balloon: deflate via a page list Wei Wang (5):

[PATCH v10 2/6] virtio-balloon: coding format cleanup

2017-05-04 Thread Wei Wang
Clean up the comment format. Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 4a9f307..ecb64e9 100644 --- a/drivers/virtio

[PATCH v10 1/6] virtio-balloon: deflate via a page list

2017-05-04 Thread Wei Wang
From: Liang Li This patch saves the deflated pages to a list, instead of the PFN array. Accordingly, the balloon_pfn_to_page() function is removed. Signed-off-by: Liang Li Signed-off-by: Michael S. Tsirkin Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 22

Re: [PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ

2017-04-26 Thread Wei Wang
On 04/14/2017 01:08 AM, Michael S. Tsirkin wrote: On Thu, Apr 13, 2017 at 05:35:08PM +0800, Wei Wang wrote: Add a new vq, miscq, to handle miscellaneous requests between the device and the driver. This patch implemnts the VIRTIO_BALLOON_MISCQ_INQUIRE_UNUSED_PAGES implements request sent

Re: [virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS

2017-04-26 Thread Wei Wang
On 04/27/2017 07:20 AM, Michael S. Tsirkin wrote: On Wed, Apr 26, 2017 at 11:03:34AM +, Wang, Wei W wrote: Hi Michael, could you please give some feedback? I'm sorry, I'm not sure feedback on what you are requesting. Oh, just some trivial things (e.g. use a field in the header, hdr->chunks

Re: [virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS

2017-04-16 Thread Wei Wang
On 04/15/2017 05:38 AM, Michael S. Tsirkin wrote: On Fri, Apr 14, 2017 at 04:37:52PM +0800, Wei Wang wrote: On 04/14/2017 12:34 AM, Michael S. Tsirkin wrote: On Thu, Apr 13, 2017 at 05:35:05PM +0800, Wei Wang wrote: So we don't need the bitmap to talk to host, it is just a data structu

Re: [PATCH v9 3/5] mm: function to offer a page block on the free list

2017-04-14 Thread Wei Wang
On 04/14/2017 10:58 AM, Matthew Wilcox wrote: On Fri, Apr 14, 2017 at 10:30:27AM +0800, Wei Wang wrote: OK. What do you think if we add this: #if defined(CONFIG_VIRTIO_BALLOON) || defined(CONFIG_VIRTIO_BALLOON_MODULE) That's spelled "IS_ENABLED(CONFIG_VIRTIO_BALLOON)", FYI.

Re: [virtio-dev] Re: [PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS

2017-04-14 Thread Wei Wang
On 04/14/2017 12:34 AM, Michael S. Tsirkin wrote: On Thu, Apr 13, 2017 at 05:35:05PM +0800, Wei Wang wrote: So we don't need the bitmap to talk to host, it is just a data structure we chose to maintain lists of pages, right? Right. bitmap is the way to gather pages to chunk. It's o

Re: [PATCH v9 3/5] mm: function to offer a page block on the free list

2017-04-13 Thread Wei Wang
On 04/14/2017 04:02 AM, Andrew Morton wrote: On Thu, 13 Apr 2017 17:35:06 +0800 Wei Wang wrote: Add a function to find a page block on the free list specified by the caller. Pages from the page block may be used immediately after the function returns. The caller is responsible for detecting

Re: [PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration

2017-04-13 Thread Wei Wang
On 04/14/2017 09:50 AM, Michael S. Tsirkin wrote: On Thu, Apr 13, 2017 at 01:44:11PM -0700, Matthew Wilcox wrote: On Thu, Apr 13, 2017 at 05:35:03PM +0800, Wei Wang wrote: 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. I don&#

Re: [PATCH kernel v8 3/4] mm: add inerface to offer info about unused pages

2017-04-13 Thread Wei Wang
On 03/17/2017 05:28 AM, Andrew Morton wrote: On Thu, 16 Mar 2017 15:08:46 +0800 Wei Wang wrote: From: Liang Li This patch adds a function to provides a snapshot of the present system unused pages. An important usage of this function is to provide the unsused pages to the Live migration

[PATCH v9 1/5] virtio-balloon: deflate via a page list

2017-04-13 Thread Wei Wang
From: Liang Li This patch saves the deflated pages to a list, instead of the PFN array. Accordingly, the balloon_pfn_to_page() function is removed. Signed-off-by: Liang Li Signed-off-by: Michael S. Tsirkin Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 22

[PATCH v9 3/5] mm: function to offer a page block on the free list

2017-04-13 Thread Wei Wang
Add a function to find a page block on the free list specified by the caller. Pages from the page block may be used immediately after the function returns. The caller is responsible for detecting or preventing the use of such pages. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- include

[PATCH v9 4/5] mm: export symbol of next_zone and first_online_pgdat

2017-04-13 Thread Wei Wang
This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. Signed-off-by: Wei Wang --- mm/mmzone.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmzone.c b/mm/mmzone.c index 5652be8..e14b7ec 100644 --- a/mm/mmzone.c +++ b/mm/mmzone.c @@ -13,6 +13,7

[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ

2017-04-13 Thread Wei Wang
shown that skipping the transfer of unused pages of a 32G guest can get the live migration time reduced to 1/8. Signed-off-by: Wei Wang Signed-off-by: Liang Li --- drivers/virtio/virtio_balloon.c | 209 +--- include/uapi/linux/virtio_balloon.h | 8 ++ 2

[PATCH v9 2/5] virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS

2017-04-13 Thread Wei Wang
process takes ~590ms resulting in an improvement of ~85%. TODO: optimize stage 1) by allocating/freeing a chunk of pages instead of a single page each time. Signed-off-by: Wei Wang Signed-off-by: Liang Li Suggested-by: Michael S. Tsirkin --- drivers/virtio/virtio_balloon.c | 384

[PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration

2017-04-13 Thread Wei Wang
virtio-balloon: deflate via a page list Wei Wang (4): virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS mm: function to offer a page block on the free list mm: export symbol of next_zone and first_online_pgdat virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ drivers/virtio/virtio_balloon.c

[PATCH v2] checkpatch: special audit for revert commit line

2017-04-11 Thread Wei Wang
From: Wei Wang Currently checkpatch.pl does not recognize git's default commit revert message and will complain about the hash format. Add special audit for revert commit message line to fix it. Signed-off-by: Wei Wang --- scripts/checkpatch.pl | 1 + 1 file changed, 1 insertion(+)

[PATCH] checkpatch: special audit for revert commit line

2017-04-11 Thread Wei Wang
From: Wei Wang Currently checkpatch.pl does not recognize revert commits and complains about the commit hash format. Add special audit for revert commit to fix it. Signed-off-by: Wei Wang --- scripts/checkpatch.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/checkpatch.pl b

Re: [PATCH kernel v8 3/4] mm: add inerface to offer info about unused pages

2017-03-31 Thread Wei Wang
On 03/30/2017 01:48 AM, Michael S. Tsirkin wrote: On Fri, Mar 17, 2017 at 02:55:33PM +0800, Wei Wang wrote: On 03/17/2017 05:28 AM, Andrew Morton wrote: On Thu, 16 Mar 2017 15:08:46 +0800 Wei Wang wrote: From: Liang Li This patch adds a function to provides a snapshot of the present

Re: [PATCH kernel v8 3/4] mm: add inerface to offer info about unused pages

2017-03-16 Thread Wei Wang
On 03/17/2017 05:28 AM, Andrew Morton wrote: On Thu, 16 Mar 2017 15:08:46 +0800 Wei Wang wrote: From: Liang Li This patch adds a function to provides a snapshot of the present system unused pages. An important usage of this function is to provide the unsused pages to the Live migration

[PATCH kernel v8 3/4] mm: add inerface to offer info about unused pages

2017-03-16 Thread Wei Wang
page logging mechanisms. Signed-off-by: Liang Li Signed-off-by: Wei Wang --- include/linux/mm.h | 3 ++ mm/page_alloc.c| 114 + 2 files changed, 117 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index b84615b

[PATCH kernel v8 4/4] virtio-balloon: VIRTIO_BALLOON_F_HOST_REQ_VQ

2017-03-16 Thread Wei Wang
ned-off-by: Liang Li Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 140 ++-- include/uapi/linux/virtio_balloon.h | 22 ++ 2 files changed, 157 insertions(+), 5 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio

[PATCH kernel v8 0/4] Extend virtio-balloon for fast (de)inflating & fast live migration

2017-03-16 Thread Wei Wang
This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Please read each patch commit log for details. Changes: v7->v8: 1) Use only one chunk f

[PATCH kernel v8 1/4] virtio-balloon: deflate via a page list

2017-03-16 Thread Wei Wang
From: Liang Li This patch saves the deflated pages to a list, instead of the PFN array. Accordingly, the balloon_pfn_to_page() function is removed. Signed-off-by: Liang Li Signed-off-by: Michael S. Tsirkin Signed-off-by: Wei Wang --- drivers/virtio/virtio_balloon.c | 22

[PATCH kernel v8 2/4] virtio-balloon: VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-16 Thread Wei Wang
improvement of ~85%. TODO: optimize stage 1) by allocating/freeing a chunk of pages instead of a single page each time. Signed-off-by: Liang Li Signed-off-by: Wei Wang Suggested-by: Michael S. Tsirkin --- drivers/virtio/virtio_balloon.c | 371 +--- include

Re: [PATCH v7 kernel 3/5] virtio-balloon: implementation of VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-11 Thread Wei Wang
On 03/11/2017 01:11 AM, Matthew Wilcox wrote: On Fri, Mar 10, 2017 at 05:58:28PM +0200, Michael S. Tsirkin wrote: One of the issues of current balloon is the 4k page size assumption. For example if you free a huge page you have to split it up and pass 4k chunks to host. Quite often host can't fr

Re: [PATCH v7 kernel 3/5] virtio-balloon: implementation of VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-10 Thread Wei Wang
On 03/09/2017 10:14 PM, Matthew Wilcox wrote: On Fri, Mar 03, 2017 at 01:40:28PM +0800, Wei Wang wrote: From: Liang Li 1) allocating pages (6.5%) 2) sending PFNs to host (68.3%) 3) address translation (6.1%) 4) madvise (19%) This patch optimizes step 2) by transfering pages to the host in

Re: [virtio-dev] Re: [PATCH v7 kernel 3/5] virtio-balloon: implementation of VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-10 Thread Wei Wang
On 03/08/2017 12:01 PM, Michael S. Tsirkin wrote: On Fri, Mar 03, 2017 at 01:40:28PM +0800, Wei Wang wrote: From: Liang Li The implementation of the current virtio-balloon is not very efficient, because the pages are transferred to the host one by one. Here is the breakdown of the time in

Re: [PATCH v7 kernel 5/5] This patch contains two parts:

2017-03-08 Thread Wei Wang
On 03/06/2017 09:23 PM, David Hildenbrand wrote:Am 03.03.2017 um 06:40 schrieb Wei Wang: From: Liang Li Sorry, I just saw the message due to an email issue. I'd prefer to split this into two parts then and to create proper subjects. Agree, will do. If I remember correctly, the ge

Re: [PATCH v7 kernel 2/5] virtio-balloon: VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-08 Thread Wei Wang
On 03/08/2017 12:01 PM, Michael S. Tsirkin wrote: On Fri, Mar 03, 2017 at 01:40:27PM +0800, Wei Wang wrote: From: Liang Li Add a new feature bit, VIRTIO_BALLOON_F_CHUNK_TRANSFER. Please check the implementation patch commit for details about this feature. better squash into next patch. OK

[PATCH v7 kernel 2/5] virtio-balloon: VIRTIO_BALLOON_F_CHUNK_TRANSFER

2017-03-03 Thread Wei Wang
From: Liang Li Add a new feature bit, VIRTIO_BALLOON_F_CHUNK_TRANSFER. Please check the implementation patch commit for details about this feature. Signed-off-by: Liang Li Signed-off-by: Wei Wang Cc: Michael S. Tsirkin Cc: Paolo Bonzini Cc: Cornelia Huck Cc: Amit Shah Cc: Dave Hansen Cc

<    1   2   3   4   5   6   7   >