From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51010) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAhrV-0001md-EX for qemu-devel@nongnu.org; Thu, 02 Jul 2015 13:01:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZAhrR-0000HO-4j for qemu-devel@nongnu.org; Thu, 02 Jul 2015 13:01:21 -0400 Received: from e36.co.us.ibm.com ([32.97.110.154]:49096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAhrQ-0000HF-UL for qemu-devel@nongnu.org; Thu, 02 Jul 2015 13:01:17 -0400 Received: from /spool/local by e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 2 Jul 2015 11:01:14 -0600 Received: from b03cxnp08025.gho.boulder.ibm.com (b03cxnp08025.gho.boulder.ibm.com [9.17.130.17]) by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 30D721FF0049 for ; Thu, 2 Jul 2015 10:52:25 -0600 (MDT) Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by b03cxnp08025.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t62H0W5V52756682 for ; Thu, 2 Jul 2015 10:00:32 -0700 Received: from d03av03.boulder.ibm.com (localhost [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t62H1DWg023148 for ; Thu, 2 Jul 2015 11:01:14 -0600 From: "Jason J. Herne" Date: Thu, 2 Jul 2015 13:01:06 -0400 Message-Id: <1435856471-1596-1-git-send-email-jjherne@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v4 0/5] migration: Dynamic cpu throttling for auto-converge List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: afaerber@suse.de, amit.shah@redhat.com, dgilbert@redhat.com, borntraeger@de.ibm.com, quintela@redhat.com, qemu-devel@nongnu.org, pbonzini@redhat.com Cc: "Jason J. Herne" This patch set provides a new method for throttling a vcpu and makes use of said method to dynamically increase cpu throttling during an autoconverge migration until the migration completes. The method used here for throttling vcpus is likely not the best. However, I believe that it is preferable to what is used for autoconverge today. This work is related to the following discussion: https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg00287.html Changelog ----------- v4 - Switch to a static timer - Use QEMU_CLOCK_VIRTUAL_RT instead of QEMU_CLOCK_REALTIME - Get rid of throttle_timer_stop, use throttle_percentage = 0 instead - Calculate throttle_ratio directly in cpu_throttle_thread - Consolidate timer mod operations to single function - Remove some unneeded cpu_throttle_active() checks - Check for throttle_percentage == 0 in cpu_throttle_thread - Change throttle_percentage to unsigned int - Renamed cpu_throttle_timer_pop to cpu_throttle_timer_tick v3 - Cpu throttling parameters moved from CPUState to global scope - Throttling interface now uses a percentage instead of ratio - Migration parameters added to allow tweaking of how aggressive throttling is - Add throttle active check to the throttle stop routine. - Remove asserts from throttle start/stop functions and instead force the input to fall within the acceptable range - Rename cpu_throttle_start to cpu_throttle_set to better describe its purpose - Remove unneeded object casts - Fixed monitor output formatting - Comment cleanups v2 - Add cpu throttle ratio output to hmp/qmp info/query migrate commands v1 - Initial Jason J. Herne (5): cpu: Provide vcpu throttling interface migration: Parameters for auto-converge cpu throttling migration: Dynamic cpu throttling for auto-converge qmp/hmp: Add throttle ratio to query-migrate and info migrate migration: Disambiguate MAX_THROTTLE arch_init.c | 88 ++++++++++++++++++--------------------------------- cpus.c | 66 ++++++++++++++++++++++++++++++++++++++ hmp.c | 21 ++++++++++++ include/qom/cpu.h | 38 ++++++++++++++++++++++ migration/migration.c | 57 +++++++++++++++++++++++++++++++-- qapi-schema.json | 40 ++++++++++++++++++++--- 6 files changed, 246 insertions(+), 64 deletions(-) -- 1.9.1