qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Allow to leave type on default in -machine


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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]