All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] optimize waiting for free thread to do compression
@ 2019-01-11  6:37 ` guangrong.xiao
  0 siblings, 0 replies; 38+ messages in thread
From: guangrong.xiao @ 2019-01-11  6:37 UTC (permalink / raw)
  To: pbonzini, mst, mtosatti
  Cc: kvm, quintela, Xiao Guangrong, qemu-devel, peterx, dgilbert,
	wei.w.wang, cota

From: Xiao Guangrong <xiaoguangrong@tencent.com>

Changelog in v2:
squash 'compress-wait-thread-adaptive' into 'compress-wait-thread' based
on peter's suggestion


Currently we have two behaviors if all threads are busy to do compression,
the main thread mush wait one of them becoming free if @compress-wait-thread
set to on or the main thread can directly return without wait and post
the page out as normal one

Both of them have its profits and short-comes, however, if the bandwidth is
not limited extremely so that compression can not use out all of it bandwidth,
at the same time, the migration process is easily throttled if we posted too
may pages as normal pages. None of them can work properly under this case

In order to use the bandwidth more effectively, we introduce the third
behavior, adaptive, which make the main thread wait
if there is no bandwidth left or let the page go out as normal page if there
has enough bandwidth to make sure the migration process will not be
throttled

Another patch introduces a new statistic, pages-per-second, as bandwidth
or mbps is not enough to measure the performance of posting pages out as
we have compression, xbzrle, which can significantly reduce the amount of
the data size, instead, pages-per-second is the one we want

Performance data
================
We have limited the bandwidth to 300

                                Used Bandwidth     Pages-per-Second
compress-wait-thread = on         951.66 mbps         131784

compress-wait-thread = off        2491.74 mbps        93495
compress-wait-thread-adaptive     1982.94 mbps        162529
   = on


Xiao Guangrong (3):
  migration: introduce pages-per-second
  migration: fix memory leak when updating tls-creds and tls-hostname
  migration: introduce adaptive model for waiting thread

 hmp.c                 |   8 ++-
 migration/migration.c | 137 +++++++++++++++++++++++++++++++++++++++++---------
 migration/migration.h |  21 ++++++++
 migration/ram.c       | 122 ++++++++++++++++++++++++++++++++++++++++----
 qapi/migration.json   |  44 +++++++++++-----
 5 files changed, 281 insertions(+), 51 deletions(-)

-- 
2.14.5

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

end of thread, other threads:[~2019-02-18  9:02 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-11  6:37 [PATCH v2 0/3] optimize waiting for free thread to do compression guangrong.xiao
2019-01-11  6:37 ` [Qemu-devel] " guangrong.xiao
2019-01-11  6:37 ` [PATCH v2 1/3] migration: introduce pages-per-second guangrong.xiao
2019-01-11  6:37   ` [Qemu-devel] " guangrong.xiao
2019-01-11 15:37   ` Eric Blake
2019-01-11 15:37     ` [Qemu-devel] " Eric Blake
2019-01-23 12:51     ` Dr. David Alan Gilbert
2019-01-23 12:51       ` [Qemu-devel] " Dr. David Alan Gilbert
2019-01-23 12:34   ` Dr. David Alan Gilbert
2019-01-23 12:34     ` [Qemu-devel] " Dr. David Alan Gilbert
2019-01-11  6:37 ` [PATCH v2 2/3] migration: fix memory leak when updating tls-creds and tls-hostname guangrong.xiao
2019-01-11  6:37   ` [Qemu-devel] " guangrong.xiao
2019-01-15  7:51   ` Peter Xu
2019-01-15  7:51     ` [Qemu-devel] " Peter Xu
2019-01-15 10:24     ` Dr. David Alan Gilbert
2019-01-15 10:24       ` [Qemu-devel] " Dr. David Alan Gilbert
2019-01-15 16:03       ` Eric Blake
2019-01-15 16:03         ` [Qemu-devel] " Eric Blake
2019-01-16  5:55         ` Peter Xu
2019-01-16  5:55           ` [Qemu-devel] " Peter Xu
2019-02-18  8:26         ` Xiao Guangrong
2019-02-18  8:26           ` [Qemu-devel] " Xiao Guangrong
2019-01-11  6:37 ` [PATCH v2 3/3] migration: introduce adaptive model for waiting thread guangrong.xiao
2019-01-11  6:37   ` [Qemu-devel] " guangrong.xiao
2019-01-11  9:57   ` Markus Armbruster
2019-01-11  9:57     ` [Qemu-devel] " Markus Armbruster
2019-02-18  8:47     ` Xiao Guangrong
2019-02-18  8:47       ` [Qemu-devel] " Xiao Guangrong
2019-01-16  6:40   ` Peter Xu
2019-01-16  6:40     ` [Qemu-devel] " Peter Xu
2019-02-18  9:01     ` Xiao Guangrong
2019-02-18  9:01       ` [Qemu-devel] " Xiao Guangrong
2019-01-11  9:53 ` [PATCH v2 0/3] optimize waiting for free thread to do compression Markus Armbruster
2019-01-11  9:53   ` [Qemu-devel] " Markus Armbruster
2019-01-13 14:43 ` no-reply
2019-01-13 14:43   ` [Qemu-devel] " no-reply
2019-01-13 17:41 ` no-reply
2019-01-13 17:41   ` [Qemu-devel] " no-reply

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.