From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXtp3-00089e-BE for qemu-devel@nongnu.org; Fri, 04 Sep 2015 12:26:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZXtoy-0005di-91 for qemu-devel@nongnu.org; Fri, 04 Sep 2015 12:26:41 -0400 Received: from e37.co.us.ibm.com ([32.97.110.158]:44281) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXtoy-0005dZ-2r for qemu-devel@nongnu.org; Fri, 04 Sep 2015 12:26:36 -0400 Received: from /spool/local by e37.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 4 Sep 2015 10:26:35 -0600 Received: from b03cxnp08025.gho.boulder.ibm.com (b03cxnp08025.gho.boulder.ibm.com [9.17.130.17]) by d03dlp02.boulder.ibm.com (Postfix) with ESMTP id 7BE0C3E4004C for ; Fri, 4 Sep 2015 10:26:33 -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 t84GPSge51249350 for ; Fri, 4 Sep 2015 09:25:28 -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 t84GQWHX016293 for ; Fri, 4 Sep 2015 10:26:33 -0600 From: "Jason J. Herne" Date: Fri, 4 Sep 2015 12:26:24 -0400 Message-Id: <1441383989-3377-1-git-send-email-jjherne@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v6 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. This work is related to the following discussion: https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg00287.html Changelog ----------- v6 - Updated all refs to Qemu v2.4 to 2.5. - Corrected error in API documentation. - Added default values to .json documentation v5 - Add cpu->throttle_thread_scheduled flag to prevent callbacks from stacking up - Correct error in formula used to reset the timer - Add atomic operations to protect throttle_percentage - Make use of cpu_throttle_get_percentage() instead of accessing data directly - Various small formatting/style fixes 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 | 78 +++++++++++++++++++++++++++++++++++++++++++++ hmp.c | 21 ++++++++++++ include/qom/cpu.h | 42 ++++++++++++++++++++++++ migration/migration.c | 57 +++++++++++++++++++++++++++++++-- qapi-schema.json | 40 ++++++++++++++++++++--- 6 files changed, 262 insertions(+), 64 deletions(-) -- 1.9.1