|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH] Allow to leave type on default in -machine |
Date: | Fri, 29 Jul 2011 09:37:12 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10 |
On 07/25/2011 11:11 AM, Jan Kiszka wrote:
On 2011-07-25 13:48, Jan Kiszka wrote:On 2011-07-25 13:39, Markus Armbruster wrote:Jan Kiszka<address@hidden> writes:On 2011-07-25 12:45, Richard W.M. Jones wrote:On Mon, Jul 25, 2011 at 12:33:01PM +0200, Jan Kiszka wrote:On 2011-07-25 11:41, Richard W.M. Jones wrote:On Sat, Jul 23, 2011 at 12:38:37PM +0200, Jan Kiszka wrote:From: Jan Kiszka<address@hidden> -machine somehow suggests that it selects the machine, but it doesn't. Fix that before this command is set in stone. Actually, -machine should supersede -M and allow to introduce arbitrary per-machine options to the command line. That will change the internal realization again, but we will be able to keep the user interface stable.This breaks libguestfs which was doing: qemu -machine accel=kvm:tcg ... We are not passing any -M option at all. We don't particularly care about the machine type since we're not that performance sensitive and we don't need to serialize the machine state. I have checked, and this works: qemu -machine pc,accel=kvm:tcg ... "pc" is the default, right? What about for other architectures?Yes, pc is the right default. Other arch have other defaults.So what you're saying is we have to parse qemu -machine \? output by looking for the string '(default)'? eg: $ ./arm-softmmu/qemu-system-arm -machine \?|fgrep '(default)' integratorcp ARM Integrator/CP (ARM926EJ-S) (default) $ ./i386-softmmu/qemu -machine \?|fgrep '(default)' pc-0.14 Standard PC (default)I understand, this is clumsy. Will see if we can do better.Is there a technical reason why type isn't optional with -machine? [...]Maybe it's just the assert(!permit_abbrev || list->implied_opt_name); in qemu_opts_parse, but I haven't looked at all details (and all other users) yet.I was incorrectly pointing the core, the problem is solvable at the level where we parse -machine: -------8<-------- This allows to specify -machine options without setting an explicit machine type. We will pick the default machine in this case. Requesting the list of available machines is still possible via '-machine ?' e.g. Signed-off-by: Jan Kiszka<address@hidden>
Applied. Thanks. Regards, Anthony Liguori
--- vl.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/vl.c b/vl.c index 8256504..5e53ddc 100644 --- a/vl.c +++ b/vl.c @@ -2720,7 +2720,10 @@ int main(int argc, char **argv, char **envp) fprintf(stderr, "parse error: %s\n", optarg); exit(1); } - machine = machine_parse(qemu_opt_get(opts, "type")); + optarg = qemu_opt_get(opts, "type"); + if (optarg) { + machine = machine_parse(optarg); + } break; case QEMU_OPTION_usb: usb_enabled = 1;
[Prev in Thread] | Current Thread | [Next in Thread] |