From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56608) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNj5a-0006mS-CL for qemu-devel@nongnu.org; Tue, 17 Feb 2015 09:25:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YNj5T-0001Fq-9j for qemu-devel@nongnu.org; Tue, 17 Feb 2015 09:25:26 -0500 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:57664) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNj5T-0001FQ-1m for qemu-devel@nongnu.org; Tue, 17 Feb 2015 09:25:19 -0500 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 17 Feb 2015 14:25:17 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id 271091B080B8 for ; Tue, 17 Feb 2015 14:25:01 +0000 (GMT) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t1HEOmG610617226 for ; Tue, 17 Feb 2015 14:24:48 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t1HEOm9w004691 for ; Tue, 17 Feb 2015 07:24:48 -0700 From: Michael Mueller Date: Tue, 17 Feb 2015 15:24:00 +0100 Message-Id: <1424183053-4310-3-git-send-email-mimu@linux.vnet.ibm.com> In-Reply-To: <1424183053-4310-1-git-send-email-mimu@linux.vnet.ibm.com> References: <1424183053-4310-1-git-send-email-mimu@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC PATCH v2 02/15] cpu-model: Introduce option --probe to switch into probe mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Michael Mueller , Gleb Natapov , Alexander Graf , Christian Borntraeger , "Jason J. Herne" , Cornelia Huck , Paolo Bonzini , Andreas Faerber , Richard Henderson The option --probe allows to switch into probe mode also for machines different from none. If one or more accelerators are specified these accelerators are used to provide probable properties. If no accelerator is given a list of accellerators that support probing is used. Signed-off-by: Michael Mueller --- accel.c | 13 ++++++++----- include/sysemu/accel.h | 2 +- qemu-options.hx | 8 ++++++++ vl.c | 7 ++++++- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/accel.c b/accel.c index 260b009..4ed6df8 100644 --- a/accel.c +++ b/accel.c @@ -81,7 +81,7 @@ static int accel_init_machine(AccelClass *acc, MachineState *ms, return ret; } -int configure_accelerator(MachineState *ms) +int configure_accelerator(MachineState *ms, int probe) { const char *p, *name; char buf[10]; @@ -90,13 +90,16 @@ int configure_accelerator(MachineState *ms) bool init_failed = false; AccelClass *acc = NULL; ObjectClass *oc; - bool probe_mode = false; + bool probe_mode; + probe_mode = probe != 0; p = qemu_opt_get(qemu_get_machine_opts(), "accel"); if (p == NULL) { - oc = (ObjectClass *) MACHINE_GET_CLASS(current_machine); - name = object_class_get_name(oc); - probe_mode = !strcmp(name, "none" TYPE_MACHINE_SUFFIX); + if (!probe_mode) { + oc = (ObjectClass *) MACHINE_GET_CLASS(current_machine); + name = object_class_get_name(oc); + probe_mode = !strcmp(name, "none" TYPE_MACHINE_SUFFIX); + } if (probe_mode) { /* Use these accelerators in probe mode, tcg should be last */ p = probe_mode_accels; diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 997720f..3adb6ba 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -57,6 +57,6 @@ typedef struct AccelClass { extern int tcg_tb_size; -int configure_accelerator(MachineState *ms); +int configure_accelerator(MachineState *ms, int probe); #endif diff --git a/qemu-options.hx b/qemu-options.hx index 85ca3ad..22e7544 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2847,6 +2847,14 @@ STEXI Do not start CPU at startup (you must type 'c' in the monitor). ETEXI +DEF("probe", 0, QEMU_OPTION_probe, \ + "-probe startup in probe mode, option -S is selected as well\n", QEMU_ARCH_ALL) +STEXI +@item -probe +@findex -probe +Startup in probe mode. +ETEXI + DEF("realtime", HAS_ARG, QEMU_OPTION_realtime, "-realtime [mlock=on|off]\n" " run qemu with realtime features\n" diff --git a/vl.c b/vl.c index 8c8f142..0fabc0b 100644 --- a/vl.c +++ b/vl.c @@ -138,6 +138,7 @@ bool enable_mlock = false; int nb_nics; NICInfo nd_table[MAX_NICS]; int autostart; +int probe; static int rtc_utc = 1; static int rtc_date_offset = -1; /* -1 means no change */ QEMUClockType rtc_clock; @@ -3148,6 +3149,10 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_S: autostart = 0; break; + case QEMU_OPTION_probe: + probe = 1; + autostart = 0; + break; case QEMU_OPTION_k: keyboard_layout = optarg; break; @@ -4027,7 +4032,7 @@ int main(int argc, char **argv, char **envp) exit(1); } - configure_accelerator(current_machine); + configure_accelerator(current_machine, probe); if (qtest_chrdev) { Error *local_err = NULL; -- 1.8.3.1