1. 22 Aug, 2013 1 commit
  2. 30 Jul, 2013 1 commit
  3. 10 Jul, 2013 1 commit
    • Seiji Aguchi's avatar
      add timestamp to error_report() · 5e2ac519
      Seiji Aguchi authored
      [Issue]
      When we offer a customer support service and a problem happens
      in a customer's system, we try to understand the problem by
      comparing what the customer reports with message logs of the
      customer's system.
      
      In this case, we often need to know when the problem happens.
      
      But, currently, there is no timestamp in qemu's error messages.
      Therefore, we may not be able to understand the problem based on
      error messages.
      
      [Solution]
      Add a timestamp to qemu's error message logged by
      error_report() with g_time_val_to_iso8601().
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
      5e2ac519
  4. 09 Jul, 2013 4 commits
    • Markus Armbruster's avatar
      vl: Tighten parsing of -machine option phandle_start · c1b71b0c
      Markus Armbruster authored
      Make it QEMU_OPT_NUMBER, so it gets parsed by generic code, which
      actually bothers to check for errors, rather than its user, which
      doesn't.
      
      Cc: Alexander Graf <agraf@suse.de>
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Acked-by: default avatarAlexander Graf <agraf@suse.de>
      Message-id: 1372943363-24081-8-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      c1b71b0c
    • Markus Armbruster's avatar
      Simplify -machine option queries with qemu_get_machine_opts() · 2ff3de68
      Markus Armbruster authored
      The previous two commits fixed bugs in -machine option queries.  I
      can't find fault with the remaining queries, but let's use
      qemu_get_machine_opts() everywhere, for consistency, simplicity and
      robustness.
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-id: 1372943363-24081-7-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      2ff3de68
    • Markus Armbruster's avatar
      Fix -machine options accel, kernel_irqchip, kvm_shadow_mem · 36ad0e94
      Markus Armbruster authored
      Multiple -machine options with the same ID are merged.  All but the
      one without an ID are to be silently ignored.
      
      In most places, we query these options with a null ID.  This is
      correct.
      
      In some places, we instead query whatever options come first in the
      list.  This is wrong.  When the -machine processed first happens to
      have an ID, options are taken from that ID, and the ones specified
      without ID are silently ignored.
      
      Example:
      
          $ upstream-qemu -nodefaults -S -display none -monitor stdio -machine id=foo -machine accel=kvm,usb=on
          $ upstream-qemu -nodefaults -S -display none -monitor stdio -machine id=foo,accel=kvm,usb=on -machine accel=xen
          $ upstream-qemu -nodefaults -S -display none -monitor stdio -machine accel=xen -machine id=foo,accel=kvm,usb=on
      
          $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -machine accel=kvm,usb=on
          QEMU 1.5.50 monitor - type 'help' for more information
          (qemu) info kvm
          kvm support: enabled
          (qemu) info usb
          (qemu) q
          $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -machine id=foo -machine accel=kvm,usb=on
          QEMU 1.5.50 monitor - type 'help' for more information
          (qemu) info kvm
          kvm support: disabled
          (qemu) info usb
          (qemu) q
          $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -machine id=foo,accel=kvm,usb=on -machine accel=xen
          QEMU 1.5.50 monitor - type 'help' for more information
          (qemu) info kvm
          kvm support: enabled
          (qemu) info usb
          USB support not enabled
          (qemu) q
          $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -machine accel=xen -machine id=foo,accel=kvm,usb=on
          xc: error: Could not obtain handle on privileged command interface (2 = No such file or directory): Internal error
          xen be core: can't open xen interface
          failed to initialize Xen: Operation not permitted
      
      Option usb is queried correctly, and the one without an ID wins,
      regardless of option order.
      
      Option accel is queried incorrectly, and which one wins depends on
      option order and ID.
      
      Affected options are accel (and its sugared forms -enable-kvm and
      -no-kvm), kernel_irqchip, kvm_shadow_mem.
      
      Additionally, option kernel_irqchip is normally on by default, except
      it's off when no -machine options are given.  Bug can't bite, because
      kernel_irqchip is used only when KVM is enabled, KVM is off by
      default, and enabling always creates -machine options.  Downstreams
      that enable KVM by default do get bitten, though.
      
      Use qemu_get_machine_opts() to fix these bugs.
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-id: 1372943363-24081-5-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      36ad0e94
    • Markus Armbruster's avatar
      vl: New qemu_get_machine_opts() · 7f9d6e54
      Markus Armbruster authored
      To be used in the next few commits to fix or clean up queries of
      "machine" options (-machine and its sugared forms).
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-id: 1372943363-24081-4-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      7f9d6e54
  5. 28 Jun, 2013 1 commit
    • Michael Tokarev's avatar
      vl: convert -smp to qemu_opts_parse() · 12b7f57e
      Michael Tokarev authored
      This also introduces a new suboption, "cpus=",
      which is the default.  So after this patch,
      
       -smp n,sockets=y
      
      is the same as
      
        -smp cpus=n,sockets=y
      
      (with "cpu" being some generic thing, referring to
      either cores, or threads, or sockets, as before).
      
      We still don't validate relations between different
      numbers, for example it is still possible to say
      
        -smp 1,sockets=10
      
      and it will be accepted to mean sockets=1.
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Message-id: 1372072012-30305-1-git-send-email-mjt@msgid.tls.msk.ru
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      12b7f57e
  6. 21 Jun, 2013 1 commit
  7. 19 Jun, 2013 3 commits
    • Markus Armbruster's avatar
      vl: Rename *boot_devices to *boot_order, for consistency · 083b79c9
      Markus Armbruster authored
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Message-id: 1371208516-7857-5-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      083b79c9
    • Markus Armbruster's avatar
      vl: Fix -boot order and once regressions, and related bugs · 8281abd5
      Markus Armbruster authored
      Option "once" sets up a different boot order just for the initial
      boot.  Boot order reverts back to normal on reset.  Option "order"
      changes the normal boot order.
      
      The reversal is implemented by reset handler restore_boot_devices(),
      which takes the boot order to revert to as argument.
      restore_boot_devices() does nothing on its first call, because that
      must be the initial machine reset.  On its second call, it changes the
      boot order back, and unregisters itself.
      
      Because we register the handler right when -boot gets parsed, we can
      revert to an incorrect normal boot order, and multiple -boot can
      interact in funny ways.
      
      Here's how things work without -boot once or order:
      
      * boot_devices is "".
      
      * main() passes machine->boot_order to to machine->init(), because
        boot_devices is "".  machine->init() configures firmware
        accordingly.  For PC machines, machine->boot_order is "cad", and
        pc_cmos_init() writes it to RTC CMOS, where SeaBIOS picks it up.
      
      Now consider -boot order=:
      
      * boot_devices is "".
      
      * -boot order= sets boot_devices to "" (no change).
      
      * main() passes machine->boot_order to to machine->init(), because
        boot_devices is "", as above.
      
        Bug: -boot order= has no effect.  Broken in commit e4ada29e.
      
      Next, consider -boot once=a:
      
      * boot_devices is "".
      
      * -boot once=a registers restore_boot_devices() with argument "", and
        sets boot_devices to "a".
      
      * main() passes boot_devices "a" to machine->init(), which configures
        firmware accordingly.  For PC machines, pc_cmos_init() writes the
        boot order to RTC CMOS.
      
      * main() calls qemu_system_reset().  This runs reset handlers.
      
        - restore_boot_devices() gets called with argument "".  Does
          nothing, because it's the first call.
      
      * Machine boots, boot order is "a".
      
      * Machine resets (e.g. monitor command).  Reset handlers run.
      
        - restore_boot_devices() gets called with argument "".  Calls
          qemu_boot_set("") to reconfigure firmware.  For PC machines,
          pc_boot_set() writes it into RTC CMOS.  Reset handler
          unregistered.
      
          Bug: boot order reverts to "" instead of machine->boot_order.  The
          actual boot order depends on how firmware interprets "".  Broken
          in commit e4ada29e.
      
      Next, consider -boot once=a -boot order=c:
      
      * boot_devices is "".
      
      * -boot once=a registers restore_boot_devices() with argument "", and
        sets boot_devices to "a".
      
      * -boot order=c sets boot_devices to "c".
      
      * main() passes boot_devices "c" to machine->init(), which configures
        firmware accordingly.  For PC machines, pc_cmos_init() writes the
        boot order to RTC CMOS.
      
      * main() calls qemu_system_reset().  This runs reset handlers.
      
        - restore_boot_devices() gets called with argument "".  Does
          nothing, because it's the first call.
      
      * Machine boots, boot order is "c".
      
        Bug: it should be "a".  I figure this has always been broken.
      
      * Machine resets (e.g. monitor command).  Reset handlers run.
      
        - restore_boot_devices() gets called with argument "".  Calls
          qemu_boot_set("") to reconfigure firmware.  For PC machines,
          pc_boot_set() writes it into RTC CMOS.  Reset handler
          unregistered.
      
          Bug: boot order reverts to "" instead of "c".  I figure this has
          always been broken, just differently broken before commit
          e4ada29e.
      
      Next, consider -boot once=a -boot once=b -boot once=c:
      
      * boot_devices is "".
      
      * -boot once=a registers restore_boot_devices() with argument "", and
        sets boot_devices to "a".
      
      * -boot once=b registers restore_boot_devices() with argument "a", and
        sets boot_devices to "b".
      
      * -boot once=c registers restore_boot_devices() with argument "b", and
        sets boot_devices to "c".
      
      * main() passes boot_devices "c" to machine->init(), which configures
        firmware accordingly.  For PC machines, pc_cmos_init() writes the
        boot order to RTC CMOS.
      
      * main() calls qemu_system_reset().  This runs reset handlers.
      
        - restore_boot_devices() gets called with argument "".  Does
          nothing, because it's the first call.
      
        - restore_boot_devices() gets called with argument "a".  Calls
          qemu_boot_set("a") to reconfigure firmware.  For PC machines,
          pc_boot_set() writes it into RTC CMOS.  Reset handler
          unregistered.
      
        - restore_boot_devices() gets called with argument "b".  Calls
          qemu_boot_set("b") to reconfigure firmware.  For PC machines,
          pc_boot_set() writes it into RTC CMOS.  Reset handler
          unregistered.
      
      * Machine boots, boot order is "b".
      
        Bug: should really be "c", because that came last, and for all other
        -boot options, the last one wins.  I figure this was broken some
        time before commit 37905d6a, and fixed there only for a single
        occurence of "once".
      
      * Machine resets (e.g. monitor command).  Reset handlers run.
      
        - restore_boot_devices() gets called with argument "".  Calls
          qemu_boot_set("") to reconfigure firmware.  For PC machines,
          pc_boot_set() writes it into RTC CMOS.  Reset handler
          unregistered.
      
          Same bug as above: boot order reverts to "" instead of
          machine->boot_order.
      
      Fix by acting upon -boot options order, once and menu only after
      option parsing is complete, and the machine is known.  This is how the
      other -boot options work already.
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Message-id: 1371208516-7857-4-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      8281abd5
    • Markus Armbruster's avatar
      vl: Clean up parsing of -boot option argument · 6ef4716c
      Markus Armbruster authored
      Commit 3d3b8303 threw in some QemuOpts parsing without replacing the
      existing ad hoc parser, resulting in a confusing mess.  Clean it up.
      
      Two user-visible changes:
      
      1. Invalid options are reported more nicely.  Before:
      
              qemu: unknown boot parameter 'x' in 'x=y'
      
         After:
      
              qemu-system-x86_64: -boot x=y: Invalid parameter 'x'
      
      2. If -boot is given multiple times, options accumulate, just like for
         -machine.  Before, only options order, once and menu accumulated.
         For the other ones, all but the first -boot in non-legacy syntax
         got simply ignored.
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Message-id: 1371208516-7857-2-git-send-email-armbru@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      6ef4716c
  8. 17 Jun, 2013 1 commit
    • Michael Tokarev's avatar
      vl: always define no_frame · 616404cd
      Michael Tokarev authored
      Commit 047d4e15 "Unbreak -no-quit for GTK, validate SDL options" broke
      build of qemu without sdl, by referencing `no_frame' variable which is defined
      inside #if SDL block.  Fix that by defining that variable unconditionally.
      
      This is a better fix for the build issue introduced by that patch than
      a revert.  This change keeps the new functinality introduced by that patch
      and just fixes the compilation.  It still is not a complete fix around the
      original issue (not working -no-frame et al with -display gtk), because it
      makes only the legacy interface working, not the new suboption interface,
      so a few more changes are needed.
      
      Cc: Peter Wu <lekensteyn@gmail.com>
      Cc: qemu-trivial@nongnu.org
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Reviewed-by: default avatarPeter Wu <lekensteyn@gmail.com>
      616404cd
  9. 16 Jun, 2013 1 commit
    • Michael Tokarev's avatar
      vl: always define no_frame · a1077090
      Michael Tokarev authored
      Commit 047d4e15 "Unbreak -no-quit for GTK, validate SDL options" broke
      build of qemu without sdl, by referencing `no_frame' variable which is defined
      inside #if SDL block.  Fix that by defining that variable unconditionally.
      
      This is a better fix for the build issue introduced by that patch than
      a revert.  This change keeps the new functinality introduced by that patch
      and just fixes the compilation.  It still is not a complete fix around the
      original issue (not working -no-frame et al with -display gtk), because it
      makes only the legacy interface working, not the new suboption interface,
      so a few more changes are needed.
      
      Cc: Peter Wu <lekensteyn@gmail.com>
      Cc: qemu-trivial@nongnu.org
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Reviewed-by: default avatarPeter Wu <lekensteyn@gmail.com>
      Tested-by: default avatarAndreas Färber <afaerber@suse.de>
      Message-id: 1371292923-28105-1-git-send-email-mjt@msgid.tls.msk.ru
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      a1077090
  10. 11 Jun, 2013 2 commits
    • Peter Wu's avatar
      Unbreak -no-quit for GTK, validate SDL options · 047d4e15
      Peter Wu authored
      Certain options (-no-frame, -alt-grab, -ctrl-grab) only make sense with SDL.
      When compiling without SDL, these options (and -no-quit) print an error message
      and exit qemu.
      
      In case QEMU is compiled with SDL support, the three aforementioned options
      still do not make sense with other display types. This patch addresses that
      issue by printing a warning. I have chosen not to exit QEMU afterwards because
      having the option is not harmful and before this patch it would be ignored
      anyway.
      
      By delaying the sanity check from compile-time with some ifdefs to run-time,
      -no-quit is now also properly supported when compiling without SDL.
      Signed-off-by: default avatarPeter Wu <lekensteyn@gmail.com>
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      047d4e15
    • Peter Wu's avatar
      gtk: implement -full-screen · 787ba4f0
      Peter Wu authored
      Aiming for GTK as replacement for SDL, a feature like -full-screen should also
      be implemented.
      
      Bringing the window into full-screen mode is done by activating the "Fullscreen"
      menu item. This is done after showing the windows to make the cursor and menu
      hidden.
      
      v2: drop -no-frame implementation, use booleans instead of ints and ensure
          consistency between ui state and menu.
      Signed-off-by: default avatarPeter Wu <lekensteyn@gmail.com>
      Reviewed-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      787ba4f0
  11. 10 Jun, 2013 1 commit
  12. 03 Jun, 2013 1 commit
  13. 23 May, 2013 1 commit
  14. 20 May, 2013 1 commit
  15. 12 May, 2013 1 commit
  16. 02 May, 2013 1 commit
  17. 01 May, 2013 1 commit
  18. 30 Apr, 2013 1 commit
  19. 29 Apr, 2013 2 commits
  20. 26 Apr, 2013 1 commit
  21. 23 Apr, 2013 1 commit
  22. 22 Apr, 2013 1 commit
  23. 16 Apr, 2013 2 commits
  24. 15 Apr, 2013 3 commits
  25. 12 Apr, 2013 2 commits
  26. 08 Apr, 2013 1 commit
    • Paolo Bonzini's avatar
      hw: move headers to include/ · 0d09e41a
      Paolo Bonzini authored
      Many of these should be cleaned up with proper qdev-/QOM-ification.
      Right now there are many catch-all headers in include/hw/ARCH depending
      on cpu.h, and this makes it necessary to compile these files per-target.
      However, fixing this does not belong in these patches.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0d09e41a
  27. 04 Apr, 2013 3 commits