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 zone->lock is released, so it is the caller's
responsibility to either detect or prevent the use of such pages.
Signed-off-by:
Add a new vq to report hints of guest free pages to the host.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
---
drivers/virtio/virtio_balloon.c | 167 +++-
include/uapi/linux/virtio_balloon.h |
plementation patch.
3) commit changes
4) patch re-org
Matthew Wilcox (1):
lib/xbitmap: Introduce xbitmap
Wei Wang (4):
lib/xbitmap: add xb_find_next_bit() and xb_zero()
virtio-balloon: VIRTIO_BALLOON_F_SG
mm: support reporting free page blocks
virtio-balloon: VIRTIO_BALLOON_F_FREE_PAG
st_bit().
Signed-off-by: Matthew Wilcox <mawil...@microsoft.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Michal Hocko <mho...@kernel.org>
Cc: Michael S. Tsirkin <m...@redhat.com>
---
include/linux/radix-tree.h | 3
() 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 <wei.w.w...@intel.com>
Sign
xb_find_next_bit() is used to find the next "1" or "0" bit in the
given range. xb_zero() is used to zero the given range of bits.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Matthew Wilcox <mawil...@m
On 08/16/2017 01:57 PM, Adam Tao wrote:
On Thu, Aug 03, 2017 at 02:38:14PM +0800, Wei Wang wrote:
This patch series enhances the existing virtio-balloon with the following
new features:
1) fast ballooning: transfer ballooned pages between the guest and host in
chunks using sgs, instead of one
On 08/10/2017 03:05 PM, Michal Hocko wrote:
On Tue 08-08-17 14:34:25, Wei Wang wrote:
On 08/08/2017 02:12 PM, Wei Wang wrote:
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
On 08/10/2017 05:36 AM, Andrew Morton wrote:
On Thu, 3 Aug 2017 14:38:15 +0800 Wei Wang <wei.w.w...@intel.com> wrote:
From: Matthew Wilcox <mawil...@microsoft.com>
The eXtensible Bitmap is a sparse bitmap representation which is
efficient for set bits which tend to cluster. It
On 08/08/2017 02:12 PM, Wei Wang wrote:
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 li
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 for e
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
shouldn'
On 08/03/2017 02:38 PM, Wei Wang wrote:
From: Matthew Wilcox <mawil...@microsoft.com>
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
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
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
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,
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
shouldn'
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
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
ch 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 <wei.w.w...@intel.com>
Cc: Michal Hocko <mh
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
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
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
Add a new vq to report hints of guest free pages to the host.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
---
drivers/virtio/virtio_balloon.c | 164 ++--
include/uapi/linux/virtio_balloon.h |
-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
Cc: Michal Hocko <mho...@kernel.org>
Cc: Michael S. Tsirkin <m...@redhat.com>
---
include/linux/mm.h | 7
include/linux/mmzone.h | 5 +++
mm/p
() 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 <wei.w.w...@intel.com>
Sign
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 <wei.w.w...@intel.com>
---
include/linux/xbitmap.h | 4
lib/radix-tree.c| 28 +++
e-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_BALLOON_F_FREE
st_bit().
Signed-off-by: Matthew Wilcox <mawil...@microsoft.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
include/linux/radix-tree.h | 2 +
include/linux/xbitmap.h| 49
lib/radix-tree.c | 139 -
3
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
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 done
pages is increased from ~491ms to 2.8 seconds with
__GFP_ZERO added. So, this patch removes the flag.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
mm/balloon_compaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c
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 each
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 explaining
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
This patch enables for_each_zone()/for_each_populated_zone() to be
invoked by a kernel module.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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
++
the function was invoked.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
---
include/linux/mm.h | 5 +++
mm/page_alloc.c| 96 ++
2 files changed, 101 insertions(+)
diff --git a/include/
and 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 <wei.w.w...@intel.
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 <wei.w.w...@intel.com>
---
include/linux/xbitmap.h | 4
lib/radix-tree.c| 26 +++
st_bit().
Signed-off-by: Matthew Wilcox <mawil...@microsoft.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
include/linux/radix-tree.h | 2 +
include/linux/xbitmap.h| 49
lib/radix-tree.c | 138 -
3
From: Liang Li <liang.z...@intel.com>
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 <liang.z...@intel.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Signe
Clean up the comment format.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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/d
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
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
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
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
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
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
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
This patch enables for_each_zone()/for_each_populated_zone() to be
invoked by a kernel module.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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
++
is not
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 <wei.w.w...@intel.com>
---
drivers/virtio/virtio_balloon.c | 363
includ
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 <wei.w.w...@intel.com>
Sign
-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
Suggested-by: Michael S. Tsirkin <m...@redhat.com>
---
drivers/virtio/virtio_balloon.c | 418 +---
drivers/virtio/virtio_ring.c| 120 ++-
incl
Clean up the comment format.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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/d
From: Liang Li <liang.z...@intel.com>
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 <liang.z...@intel.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Signe
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
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
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 <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
---
dr
This patch enables for_each_zone()/for_each_populated_zone() to be
invoked by a kernel module.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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
++
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 <wei.w.w...@intel.com>
Sign
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
gether 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):
Clean up the comment format.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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/d
From: Liang Li <liang.z...@intel.com>
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 <liang.z...@intel.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Signe
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
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,
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 structure we
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.
Rig
On 04/14/2017 04:02 AM, Andrew Morton wrote:
On Thu, 13 Apr 2017 17:35:06 +0800 Wei Wang <wei.w.w...@intel.com> 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
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't
On 03/17/2017 05:28 AM, Andrew Morton wrote:
On Thu, 16 Mar 2017 15:08:46 +0800 Wei Wang <wei.w.w...@intel.com> wrote:
From: Liang Li <liang.z...@intel.com>
This patch adds a function to provides a snapshot of the present system
unused pages. An important usage of this function i
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 <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
---
drivers/virtio/virtio_balloon.c | 209 +
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 <wei.w.w...@intel.com>
Sign
This patch enables for_each_zone()/for_each_populated_zone() to be
invoked by a kernel module.
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
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
++
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 <wei.w.w...@intel.com>
Signed-off-by: Liang Li <liang.z...@intel.com>
Suggested-by: Michael S
From: Liang Li <liang.z...@intel.com>
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 <liang.z...@intel.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Signe
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
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 <wei.w.w...@intel.com> wrote:
From: Liang Li <liang.z...@intel.com>
This patch add
On 03/17/2017 05:28 AM, Andrew Morton wrote:
On Thu, 16 Mar 2017 15:08:46 +0800 Wei Wang <wei.w.w...@intel.com> wrote:
From: Liang Li <liang.z...@intel.com>
This patch adds a function to provides a snapshot of the present system
unused pages. An important usage of this function i
future.
Signed-off-by: Liang Li <liang.z...@intel.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
drivers/virtio/virtio_balloon.c | 140 ++--
include/uapi/linux/virtio_balloon.h | 22 ++
2 files changed, 157 insertions(+), 5 deleti
be re-tracked by the dirty
page logging mechanisms.
Signed-off-by: Liang Li <liang.z...@intel.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
---
include/linux/mm.h | 3 ++
mm/page_alloc.c| 114 +
2 files changed, 117 i
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: Liang Li <liang.z...@intel.com>
Signed-off-by: Wei Wang <wei.w.w...@intel.com>
Suggested-by: Michael S. Tsirki
From: Liang Li <liang.z...@intel.com>
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 <liang.z...@intel.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Signe
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
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
301 - 400 of 410 matches
Mail list logo