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
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
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
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
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
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(*
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
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 (!callb
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
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 it is the
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
() 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
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
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
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
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
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
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.
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
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
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
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 it, there
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 to the
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 by the
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 the
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
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
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 expl
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
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
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
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
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
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
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 ++
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
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
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)) {
+ if
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
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 ca
: 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
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
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
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
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
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
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
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
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
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
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
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
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):
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
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
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, hdr->chunks
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
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.
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
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
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
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
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
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
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
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
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
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
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(+)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
501 - 600 of 606 matches
Mail list logo