All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC qemu 0/4] A PV solution for live migration optimization
@ 2016-03-03 10:44 ` Liang Li
  0 siblings, 0 replies; 292+ messages in thread
From: Liang Li @ 2016-03-03 10:44 UTC (permalink / raw)
  To: quintela, amit.shah, qemu-devel, linux-kernel
  Cc: mst, akpm, pbonzini, rth, ehabkost, linux-mm, virtualization,
	kvm, dgilbert, Liang Li

The current QEMU live migration implementation mark the all the
guest's RAM pages as dirtied in the ram bulk stage, all these pages
will be processed and that takes quit a lot of CPU cycles.

>From guest's point of view, it doesn't care about the content in free
pages. We can make use of this fact and skip processing the free
pages in the ram bulk stage, it can save a lot CPU cycles and reduce
the network traffic significantly while speed up the live migration
process obviously.

This patch set is the QEMU side implementation.

The virtio-balloon is extended so that QEMU can get the free pages
information from the guest through virtio.

After getting the free pages information (a bitmap), QEMU can use it
to filter out the guest's free pages in the ram bulk stage. This make
the live migration process much more efficient.

This RFC version doesn't take the post-copy and RDMA into
consideration, maybe both of them can benefit from this PV solution
by with some extra modifications.

Performance data
================

Test environment:

CPU: Intel (R) Xeon(R) CPU ES-2699 v3 @ 2.30GHz
Host RAM: 64GB
Host Linux Kernel:  4.2.0           Host OS: CentOS 7.1
Guest Linux Kernel:  4.5.rc6        Guest OS: CentOS 6.6
Network:  X540-AT2 with 10 Gigabit connection
Guest RAM: 8GB

Case 1: Idle guest just boots:
============================================
                    | original  |    pv    
-------------------------------------------
total time(ms)      |    1894   |   421
--------------------------------------------
transferred ram(KB) |   398017  |  353242
============================================


Case 2: The guest has ever run some memory consuming workload, the
workload is terminated just before live migration.
============================================
                    | original  |    pv    
-------------------------------------------
total time(ms)      |   7436    |   552
--------------------------------------------
transferred ram(KB) |  8146291  |  361375
============================================

Liang Li (4):
  pc: Add code to get the lowmem form PCMachineState
  virtio-balloon: Add a new feature to balloon device
  migration: not set migration bitmap in setup stage
  migration: filter out guest's free pages in ram bulk stage

 balloon.c                                       | 30 ++++++++-
 hw/i386/pc.c                                    |  5 ++
 hw/i386/pc_piix.c                               |  1 +
 hw/i386/pc_q35.c                                |  1 +
 hw/virtio/virtio-balloon.c                      | 81 ++++++++++++++++++++++++-
 include/hw/i386/pc.h                            |  3 +-
 include/hw/virtio/virtio-balloon.h              | 17 +++++-
 include/standard-headers/linux/virtio_balloon.h |  1 +
 include/sysemu/balloon.h                        | 10 ++-
 migration/ram.c                                 | 64 +++++++++++++++----
 10 files changed, 195 insertions(+), 18 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 292+ messages in thread
* [Qemu-devel] [RFC qemu 0/4] A PV solution for live migration optimization
@ 2016-03-04  9:32 Jitendra Kolhe
  2016-03-04  9:36 ` Li, Liang Z
  2016-03-08 11:14 ` Amit Shah
  0 siblings, 2 replies; 292+ messages in thread
From: Jitendra Kolhe @ 2016-03-04  9:32 UTC (permalink / raw)
  To: liang.z.li, dgilbert
  Cc: ehabkost, kvm, quintela, simhan, mst, qemu-devel, linux-kernel,
	jitendra.kolhe, linux-mm, mohan_parthasarathy, amit.shah,
	pbonzini, akpm, virtualization, rth

> >
> > * Liang Li (liang.z.li@intel.com) wrote:
> > > The current QEMU live migration implementation mark the all the
> > > guest's RAM pages as dirtied in the ram bulk stage, all these pages
> > > will be processed and that takes quit a lot of CPU cycles.
> > >
> > > From guest's point of view, it doesn't care about the content in free
> > > pages. We can make use of this fact and skip processing the free pages
> > > in the ram bulk stage, it can save a lot CPU cycles and reduce the
> > > network traffic significantly while speed up the live migration
> > > process obviously.
> > >
> > > This patch set is the QEMU side implementation.
> > >
> > > The virtio-balloon is extended so that QEMU can get the free pages
> > > information from the guest through virtio.
> > >
> > > After getting the free pages information (a bitmap), QEMU can use it
> > > to filter out the guest's free pages in the ram bulk stage. This make
> > > the live migration process much more efficient.
> >
> > Hi,
> >   An interesting solution; I know a few different people have been looking at
> > how to speed up ballooned VM migration.
> >
>
> Ooh, different solutions for the same purpose, and both based on the balloon.

We were also tying to address similar problem, without actually needing to modify
the guest driver. Please find patch details under mail with subject.
migration: skip sending ram pages released by virtio-balloon driver

Thanks,
- Jitendra

>
> >   I wonder if it would be possible to avoid the kernel changes by parsing
> > /proc/self/pagemap - if that can be used to detect unmapped/zero mapped
> > pages in the guest ram, would it achieve the same result?
> >
>
> Only detect the unmapped/zero mapped pages is not enough. Consider the
> situation like case 2, it can't achieve the same result.
>
> > > This RFC version doesn't take the post-copy and RDMA into
> > > consideration, maybe both of them can benefit from this PV solution by
> > > with some extra modifications.
> >
> > For postcopy to be safe, you would still need to send a message to the
> > destination telling it that there were zero pages, otherwise the destination
> > can't tell if it's supposed to request the page from the source or treat the
> > page as zero.
> >
> > Dave
>
> I will consider this later, thanks, Dave.
>
> Liang
>
> >
> > >
> > > Performance data
> > > ================
> > >
> > > Test environment:
> > >
> > > CPU: Intel (R) Xeon(R) CPU ES-2699 v3 @ 2.30GHz Host RAM: 64GB
> > > Host Linux Kernel:  4.2.0           Host OS: CentOS 7.1
> > > Guest Linux Kernel:  4.5.rc6        Guest OS: CentOS 6.6
> > > Network:  X540-AT2 with 10 Gigabit connection Guest RAM: 8GB
> > >
> > > Case 1: Idle guest just boots:
> > > ============================================
> > >                     | original  |    pv
> > > -------------------------------------------
> > > total time(ms)      |    1894   |   421
> > > --------------------------------------------
> > > transferred ram(KB) |   398017  |  353242
> > > ============================================
> > >
> > >
> > > Case 2: The guest has ever run some memory consuming workload, the
> > > workload is terminated just before live migration.
> > > ============================================
> > >                     | original  |    pv
> > > -------------------------------------------
> > > total time(ms)      |   7436    |   552
> > > --------------------------------------------
> > > transferred ram(KB) |  8146291  |  361375
> > > ============================================
> > >
>
>

^ permalink raw reply	[flat|nested] 292+ messages in thread

end of thread, other threads:[~2016-03-16  1:20 UTC | newest]

Thread overview: 292+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-03 10:44 [RFC qemu 0/4] A PV solution for live migration optimization Liang Li
2016-03-03 10:44 ` [Qemu-devel] " Liang Li
2016-03-03 10:44 ` Liang Li
2016-03-03 10:44 ` [RFC qemu 1/4] pc: Add code to get the lowmem form PCMachineState Liang Li
2016-03-03 10:44   ` [Qemu-devel] " Liang Li
2016-03-03 10:44   ` Liang Li
2016-03-03 10:44 ` Liang Li
2016-03-03 10:44 ` [RFC qemu 2/4] virtio-balloon: Add a new feature to balloon device Liang Li
2016-03-03 10:44 ` Liang Li
2016-03-03 10:44   ` [Qemu-devel] " Liang Li
2016-03-03 10:44   ` Liang Li
2016-03-03 12:23   ` Cornelia Huck
2016-03-03 12:23   ` Cornelia Huck
2016-03-03 12:23     ` [Qemu-devel] " Cornelia Huck
2016-03-03 12:23     ` Cornelia Huck
2016-03-04  2:38     ` Li, Liang Z
2016-03-04  2:38       ` [Qemu-devel] " Li, Liang Z
2016-03-04  2:38       ` Li, Liang Z
2016-03-04  2:38       ` Li, Liang Z
2016-03-03 12:56   ` Michael S. Tsirkin
2016-03-03 12:56   ` Michael S. Tsirkin
2016-03-03 12:56     ` [Qemu-devel] " Michael S. Tsirkin
2016-03-03 12:56     ` Michael S. Tsirkin
2016-03-04  2:29     ` Li, Liang Z
2016-03-04  2:29       ` [Qemu-devel] " Li, Liang Z
2016-03-04  2:29       ` Li, Liang Z
2016-03-04  2:29       ` Li, Liang Z
2016-03-03 10:44 ` [RFC qemu 3/4] migration: not set migration bitmap in setup stage Liang Li
2016-03-03 10:44   ` [Qemu-devel] " Liang Li
2016-03-03 10:44   ` Liang Li
2016-03-03 10:44 ` Liang Li
2016-03-03 10:44 ` [RFC qemu 4/4] migration: filter out guest's free pages in ram bulk stage Liang Li
2016-03-03 10:44   ` [Qemu-devel] " Liang Li
2016-03-03 10:44   ` Liang Li
2016-03-03 12:16   ` Cornelia Huck
2016-03-03 12:16     ` [Qemu-devel] " Cornelia Huck
2016-03-03 12:16     ` Cornelia Huck
2016-03-03 12:16     ` Cornelia Huck
2016-03-04  2:32     ` Li, Liang Z
2016-03-04  2:32     ` Li, Liang Z
2016-03-04  2:32       ` [Qemu-devel] " Li, Liang Z
2016-03-04  2:32       ` Li, Liang Z
2016-03-04  2:32       ` Li, Liang Z
2016-03-03 12:45   ` [Qemu-devel] " Daniel P. Berrange
2016-03-03 12:45   ` Daniel P. Berrange
2016-03-03 12:45     ` Daniel P. Berrange
2016-03-03 12:45     ` Daniel P. Berrange
2016-03-04  2:43     ` Li, Liang Z
2016-03-04  2:43       ` Li, Liang Z
2016-03-04  2:43       ` Li, Liang Z
2016-03-04  2:43     ` Li, Liang Z
2016-03-03 10:44 ` Liang Li
2016-03-03 13:58 ` [Qemu-devel] [RFC qemu 0/4] A PV solution for live migration optimization Roman Kagan
2016-03-03 13:58   ` Roman Kagan
2016-03-03 13:58   ` Roman Kagan
2016-03-03 13:58   ` Roman Kagan
2016-03-04  1:35   ` Li, Liang Z
2016-03-04  1:35     ` Li, Liang Z
2016-03-04  1:35     ` Li, Liang Z
2016-03-04  1:35     ` Li, Liang Z
2016-03-03 17:46 ` Dr. David Alan Gilbert
2016-03-03 17:46   ` [Qemu-devel] " Dr. David Alan Gilbert
2016-03-03 17:46   ` Dr. David Alan Gilbert
2016-03-04  1:52   ` Li, Liang Z
2016-03-04  1:52     ` [Qemu-devel] " Li, Liang Z
2016-03-04  1:52     ` Li, Liang Z
2016-03-04  1:52     ` Li, Liang Z
2016-03-04  8:14     ` [Qemu-devel] " Roman Kagan
2016-03-04  8:14     ` Roman Kagan
2016-03-04  8:14       ` Roman Kagan
2016-03-04  8:14       ` Roman Kagan
2016-03-04  9:08       ` Li, Liang Z
2016-03-04  9:08         ` Li, Liang Z
2016-03-04  9:08         ` Li, Liang Z
2016-03-04 10:23         ` Roman Kagan
2016-03-04 10:23           ` Roman Kagan
2016-03-04 10:23           ` Roman Kagan
2016-03-04 14:26           ` Li, Liang Z
2016-03-04 14:26           ` Li, Liang Z
2016-03-04 14:26             ` Li, Liang Z
2016-03-04 14:26             ` Li, Liang Z
2016-03-04 14:45             ` Michael S. Tsirkin
2016-03-04 14:45               ` Michael S. Tsirkin
2016-03-04 14:45               ` Michael S. Tsirkin
2016-03-04 14:45               ` Michael S. Tsirkin
2016-03-04 15:49               ` Li, Liang Z
2016-03-04 15:49               ` Li, Liang Z
2016-03-04 15:49                 ` Li, Liang Z
2016-03-04 15:49                 ` Li, Liang Z
2016-03-05 19:55                 ` Michael S. Tsirkin
2016-03-05 19:55                 ` Michael S. Tsirkin
2016-03-05 19:55                   ` Michael S. Tsirkin
2016-03-05 19:55                   ` Michael S. Tsirkin
2016-03-05 19:55                   ` Michael S. Tsirkin
2016-03-07  6:49                   ` Li, Liang Z
2016-03-07  6:49                     ` Li, Liang Z
2016-03-07  6:49                     ` Li, Liang Z
2016-03-07  6:49                     ` Li, Liang Z
2016-03-07 11:40                     ` Michael S. Tsirkin
2016-03-07 11:40                       ` Michael S. Tsirkin
2016-03-07 11:40                       ` Michael S. Tsirkin
2016-03-07 11:40                       ` Michael S. Tsirkin
2016-03-07 15:06                       ` Li, Liang Z
2016-03-07 15:06                         ` Li, Liang Z
2016-03-07 15:06                         ` Li, Liang Z
2016-03-07 15:06                         ` Li, Liang Z
2016-03-09 14:28                       ` Roman Kagan
2016-03-09 14:28                       ` Roman Kagan
2016-03-09 14:28                         ` Roman Kagan
2016-03-09 14:28                         ` Roman Kagan
2016-03-09 14:28                         ` Roman Kagan
2016-03-09 15:27                         ` Li, Liang Z
2016-03-09 15:27                         ` Li, Liang Z
2016-03-09 15:27                           ` Li, Liang Z
2016-03-09 15:27                           ` Li, Liang Z
2016-03-09 15:30                           ` Michael S. Tsirkin
2016-03-09 15:30                             ` Michael S. Tsirkin
2016-03-09 15:30                             ` Michael S. Tsirkin
2016-03-10  1:41                             ` Li, Liang Z
2016-03-10  1:41                             ` Li, Liang Z
2016-03-10  1:41                               ` Li, Liang Z
2016-03-10  1:41                               ` Li, Liang Z
2016-03-10  1:41                               ` Li, Liang Z
2016-03-10 12:29                               ` Michael S. Tsirkin
2016-03-10 12:29                                 ` Michael S. Tsirkin
2016-03-10 12:29                                 ` Michael S. Tsirkin
2016-03-10 12:29                                 ` Michael S. Tsirkin
2016-03-09 15:30                           ` Michael S. Tsirkin
2016-03-09 15:41                         ` Michael S. Tsirkin
2016-03-09 15:41                           ` Michael S. Tsirkin
2016-03-09 15:41                           ` Michael S. Tsirkin
2016-03-09 17:04                           ` Roman Kagan
2016-03-09 17:04                           ` Roman Kagan
2016-03-09 17:04                             ` Roman Kagan
2016-03-09 17:04                             ` Roman Kagan
2016-03-09 17:04                             ` Roman Kagan
2016-03-09 17:39                             ` Michael S. Tsirkin
2016-03-09 17:39                               ` Michael S. Tsirkin
2016-03-09 17:39                               ` Michael S. Tsirkin
2016-03-10 10:21                               ` Roman Kagan
2016-03-10 10:21                                 ` Roman Kagan
2016-03-10 10:21                                 ` Roman Kagan
2016-03-10 10:21                                 ` Roman Kagan
2016-03-09 19:38                             ` Rik van Riel
2016-03-09 19:38                             ` Rik van Riel
2016-03-09 19:38                               ` Rik van Riel
2016-03-09 19:38                               ` Rik van Riel
2016-03-10  9:30                               ` Roman Kagan
2016-03-10  9:30                                 ` Roman Kagan
2016-03-10  9:30                                 ` Roman Kagan
2016-03-10  9:30                                 ` Roman Kagan
2016-03-09 15:41                         ` Michael S. Tsirkin
2016-03-07  6:49                   ` Li, Liang Z
2016-03-04 16:24             ` Paolo Bonzini
2016-03-04 16:24             ` Paolo Bonzini
2016-03-04 16:24               ` Paolo Bonzini
2016-03-04 16:24               ` Paolo Bonzini
2016-03-04 16:24               ` Paolo Bonzini
2016-03-04 18:51               ` Dr. David Alan Gilbert
2016-03-04 18:51                 ` Dr. David Alan Gilbert
2016-03-04 18:51                 ` Dr. David Alan Gilbert
2016-03-04 18:51                 ` Dr. David Alan Gilbert
2016-03-07  5:34                 ` Li, Liang Z
2016-03-07  5:34                   ` Li, Liang Z
2016-03-07  5:34                   ` Li, Liang Z
2016-03-07  5:34                   ` Li, Liang Z
2016-03-07  5:34                 ` Li, Liang Z
2016-03-09 13:22                 ` Roman Kagan
2016-03-09 13:22                   ` Roman Kagan
2016-03-09 13:22                   ` Roman Kagan
2016-03-09 14:19                   ` Li, Liang Z
2016-03-09 14:19                   ` Li, Liang Z
2016-03-09 14:19                     ` Li, Liang Z
2016-03-09 14:19                     ` Li, Liang Z
2016-03-09 14:19                     ` Li, Liang Z
2016-03-09 13:22                 ` Roman Kagan
2016-03-09  6:18               ` Li, Liang Z
2016-03-09  6:18               ` Li, Liang Z
2016-03-09  6:18                 ` Li, Liang Z
2016-03-09  6:18                 ` Li, Liang Z
2016-03-09  6:18                 ` Li, Liang Z
2016-03-04 10:23         ` Roman Kagan
2016-03-04  9:08       ` Li, Liang Z
2016-03-04  7:55   ` Roman Kagan
2016-03-04  7:55     ` Roman Kagan
2016-03-04  7:55     ` Roman Kagan
2016-03-04  7:55     ` Roman Kagan
2016-03-04  8:23     ` Li, Liang Z
2016-03-04  8:23       ` Li, Liang Z
2016-03-04  8:23       ` Li, Liang Z
2016-03-04  8:23       ` Li, Liang Z
2016-03-04  8:35       ` Roman Kagan
2016-03-04  8:35         ` Roman Kagan
2016-03-04  8:35         ` Roman Kagan
2016-03-04  9:08         ` Dr. David Alan Gilbert
2016-03-04  9:08         ` Dr. David Alan Gilbert
2016-03-04  9:08           ` Dr. David Alan Gilbert
2016-03-04  9:08           ` Dr. David Alan Gilbert
2016-03-04  9:12           ` Li, Liang Z
2016-03-04  9:12             ` Li, Liang Z
2016-03-04  9:12             ` Li, Liang Z
2016-03-04  9:12             ` Li, Liang Z
2016-03-04  9:47             ` Michael S. Tsirkin
2016-03-04  9:47             ` Michael S. Tsirkin
2016-03-04  9:47               ` Michael S. Tsirkin
2016-03-04  9:47               ` Michael S. Tsirkin
2016-03-04 10:11               ` Li, Liang Z
2016-03-04 10:11                 ` Li, Liang Z
2016-03-04 10:11                 ` Li, Liang Z
2016-03-04 10:11                 ` Li, Liang Z
2016-03-04 10:36                 ` Michael S. Tsirkin
2016-03-04 10:36                   ` Michael S. Tsirkin
2016-03-04 10:36                   ` Michael S. Tsirkin
2016-03-04 10:36                   ` Michael S. Tsirkin
2016-03-04 15:13                   ` Li, Liang Z
2016-03-04 15:13                   ` Li, Liang Z
2016-03-04 15:13                     ` Li, Liang Z
2016-03-04 15:13                     ` Li, Liang Z
2016-03-08 14:03                     ` Michael S. Tsirkin
2016-03-08 14:03                       ` Michael S. Tsirkin
2016-03-08 14:03                       ` Michael S. Tsirkin
2016-03-08 14:03                       ` Michael S. Tsirkin
2016-03-08 14:17                       ` Li, Liang Z
2016-03-08 14:17                         ` Li, Liang Z
2016-03-08 14:17                         ` Li, Liang Z
2016-03-08 14:17                         ` Li, Liang Z
2016-03-08 14:17                       ` Li, Liang Z
2016-03-08 14:03                     ` Michael S. Tsirkin
2016-03-04  9:35           ` Roman Kagan
2016-03-04  9:35             ` Roman Kagan
2016-03-04  9:35             ` Roman Kagan
2016-03-04  9:35           ` Roman Kagan
2016-03-04  8:35       ` Roman Kagan
2016-03-04  7:55   ` Roman Kagan
2016-03-03 17:46 ` Dr. David Alan Gilbert
2016-03-08 11:13 ` Amit Shah
2016-03-08 11:13   ` [Qemu-devel] " Amit Shah
2016-03-08 11:13   ` Amit Shah
2016-03-08 11:13   ` Amit Shah
2016-03-08 13:11   ` Li, Liang Z
2016-03-08 13:11   ` Li, Liang Z
2016-03-08 13:11     ` [Qemu-devel] " Li, Liang Z
2016-03-08 13:11     ` Li, Liang Z
2016-03-10  7:44   ` Li, Liang Z
2016-03-10  7:44   ` Li, Liang Z
2016-03-10  7:44     ` [Qemu-devel] " Li, Liang Z
2016-03-10  7:44     ` Li, Liang Z
2016-03-10  7:57     ` Amit Shah
2016-03-10  7:57     ` Amit Shah
2016-03-10  7:57       ` [Qemu-devel] " Amit Shah
2016-03-10  7:57       ` Amit Shah
2016-03-10  8:36       ` Li, Liang Z
2016-03-10  8:36         ` [Qemu-devel] " Li, Liang Z
2016-03-10  8:36         ` Li, Liang Z
2016-03-10 11:18         ` Dr. David Alan Gilbert
2016-03-10 11:18         ` Dr. David Alan Gilbert
2016-03-10 11:18           ` [Qemu-devel] " Dr. David Alan Gilbert
2016-03-10 11:18           ` Dr. David Alan Gilbert
2016-03-11  2:38           ` Li, Liang Z
2016-03-11  2:38             ` [Qemu-devel] " Li, Liang Z
2016-03-11  2:38             ` Li, Liang Z
2016-03-14 17:03             ` Dr. David Alan Gilbert
2016-03-14 17:03             ` Dr. David Alan Gilbert
2016-03-14 17:03               ` [Qemu-devel] " Dr. David Alan Gilbert
2016-03-14 17:03               ` Dr. David Alan Gilbert
2016-03-14 17:03               ` Dr. David Alan Gilbert
2016-03-15  3:31               ` Li, Liang Z
2016-03-15  3:31                 ` [Qemu-devel] " Li, Liang Z
2016-03-15  3:31                 ` Li, Liang Z
2016-03-15  3:31                 ` Li, Liang Z
2016-03-15  3:31               ` Li, Liang Z
2016-03-15 10:29               ` Michael S. Tsirkin
2016-03-15 10:29               ` Michael S. Tsirkin
2016-03-15 10:29                 ` [Qemu-devel] " Michael S. Tsirkin
2016-03-15 10:29                 ` Michael S. Tsirkin
2016-03-15 11:11                 ` Li, Liang Z
2016-03-15 11:11                   ` [Qemu-devel] " Li, Liang Z
2016-03-15 11:11                   ` Li, Liang Z
2016-03-15 11:11                   ` Li, Liang Z
2016-03-15 19:55                   ` Dr. David Alan Gilbert
2016-03-15 19:55                     ` [Qemu-devel] " Dr. David Alan Gilbert
2016-03-15 19:55                     ` Dr. David Alan Gilbert
2016-03-15 19:55                     ` Dr. David Alan Gilbert
2016-03-16  1:20                     ` Li, Liang Z
2016-03-16  1:20                       ` [Qemu-devel] " Li, Liang Z
2016-03-16  1:20                       ` Li, Liang Z
2016-03-16  1:20                       ` Li, Liang Z
2016-03-11  2:38           ` Li, Liang Z
2016-03-10  8:36       ` Li, Liang Z
2016-03-04  9:32 [Qemu-devel] " Jitendra Kolhe
2016-03-04  9:36 ` Li, Liang Z
2016-03-08 11:14 ` Amit Shah

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.