1. 05 6月, 2019 1 次提交
    • M
      vl: Fix -drive / -blockdev persistent reservation management · 9ea18ed2
      Markus Armbruster 提交于
      qemu-system-FOO's main() acts on command line arguments in its own
      idiosyncratic order.  There's not much method to its madness.
      Whenever we find a case where one kind of command line argument needs
      to refer to something created for another kind later, we rejigger the
      order.
      
      Recent commit cda4aa9a "vl: Create block backends before setting
      machine properties" was such a rejigger.  Block backends are now
      created before "delayed" objects.  This broke persistent reservation
      management.  Reproducer:
      
          $ qemu-system-x86_64 -object pr-manager-helper,id=pr-helper0,path=/tmp/pr-helper0.sock-drive -drive file=/dev/mapper/crypt,file.pr-manager=pr-helper0,format=raw,if=none,id=drive-scsi0-0-0-2
          qemu-system-x86_64: -drive file=/dev/mapper/crypt,file.pr-manager=pr-helper0,format=raw,if=none,id=drive-scsi0-0-0-2: No persistent reservation manager with id 'pr-helper0'
      
      The delayed pr-manager-helper object is created too late for use by
      -drive or -blockdev.  Normal objects are still created in time.
      
      pr-manager-helper has always been a delayed object (commit 7c9e5276
      "scsi, file-posix: add support for persistent reservation
      management").  Turns out there's no real reason for that.  Make it a
      normal object.
      
      Fixes: cda4aa9aSigned-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20190604151251.9903-2-armbru@redhat.com>
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      9ea18ed2
  2. 03 6月, 2019 1 次提交
  3. 29 5月, 2019 1 次提交
  4. 28 5月, 2019 2 次提交
  5. 23 5月, 2019 1 次提交
  6. 17 5月, 2019 2 次提交
  7. 15 5月, 2019 2 次提交
  8. 07 5月, 2019 2 次提交
  9. 29 4月, 2019 1 次提交
  10. 26 4月, 2019 5 次提交
  11. 19 4月, 2019 2 次提交
  12. 18 4月, 2019 1 次提交
    • C
      log: Make glib logging go through QEMU · f5852efa
      Christophe Fergeau 提交于
      This commit adds a error_init() helper which calls
      g_log_set_default_handler() so that glib logs (g_log, g_warning, ...)
      are handled similarly to other QEMU logs. This means they will get a
      timestamp if timestamps are enabled, and they will go through the
      HMP monitor if one is configured.
      
      This commit also adds a call to error_init() to the binaries
      installed by QEMU. Since error_init() also calls error_set_progname(),
      this means that *-linux-user, *-bsd-user and qemu-pr-helper messages
      output with error_report, info_report, ... will slightly change: they
      will be prefixed by the binary name.
      
      glib debug messages are enabled through G_MESSAGES_DEBUG similarly to
      the glib default log handler.
      
      At the moment, this change will mostly impact SPICE logging if your
      spice version is >= 0.14.1. With older spice versions, this is not going
      to work as expected, but will not have any ill effect, so this call is
      not conditional on the SPICE version.
      Signed-off-by: NChristophe Fergeau <cfergeau@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-Id: <20190131164614.19209-3-cfergeau@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      f5852efa
  13. 02 4月, 2019 4 次提交
    • M
      vl: Document dependencies hiding in global and compat props · 0427b625
      Markus Armbruster 提交于
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20190401090827.20793-5-armbru@redhat.com>
      Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
      0427b625
    • M
      Revert "migration: move only_migratable to MigrationState" · 811f8652
      Markus Armbruster 提交于
      This reverts commit 3df663e5.
      This reverts commit b605c47b.
      
      Command line option --only-migratable is for disallowing any
      configuration that can block migration.
      
      Initially, --only-migratable set global variable @only_migratable.
      
      Commit 3df663e5 "migration: move only_migratable to MigrationState"
      replaced it by MigrationState member @only_migratable.  That was a
      mistake.
      
      First, it doesn't make sense on the design level.  MigrationState
      captures the state of an individual migration, but --only-migratable
      isn't a property of an individual migration, it's a restriction on
      QEMU configuration.  With fault tolerance, we could have several
      migrations at once.  --only-migratable would certainly protect all of
      them.  Storing it in MigrationState feels inappropriate.
      
      Second, it contributes to a dependency cycle that manifests itself as
      a bug now.
      
      Putting @only_migratable into MigrationState means its available only
      after migration_object_init().
      
      We can't set it before migration_object_init(), so we delay setting it
      with a global property (this is fixup commit b605c47b "migration:
      fix handling for --only-migratable").
      
      We can't get it before migration_object_init(), so anything that uses
      it can only run afterwards.
      
      Since migrate_add_blocker() needs to obey --only-migratable, any code
      adding migration blockers can run only afterwards.  This contributes
      to the following dependency cycle:
      
      * configure_blockdev() must run before machine_set_property()
        so machine properties can refer to block backends
      
      * machine_set_property() before configure_accelerator()
        so machine properties like kvm-irqchip get applied
      
      * configure_accelerator() before migration_object_init()
        so that Xen's accelerator compat properties get applied.
      
      * migration_object_init() before configure_blockdev()
        so configure_blockdev() can add migration blockers
      
      The cycle was closed when recent commit cda4aa9a "Create block
      backends before setting machine properties" added the first
      dependency, and satisfied it by violating the last one.  Broke block
      backends that add migration blockers.
      
      Moving @only_migratable into MigrationState was a mistake.  Revert it.
      
      This doesn't quite break the "migration_object_init() before
      configure_blockdev() dependency, since migrate_add_blocker() still has
      another dependency on migration_object_init().  To be addressed the
      next commit.
      
      Note that the reverted commit made -only-migratable sugar for -global
      migration.only-migratable=on below the hood.  Documentation has only
      ever mentioned -only-migratable.  This commit removes the arcane &
      undocumented alternative to -only-migratable again.  Nobody should be
      using it.
      
      Conflicts:
      	include/migration/misc.h
      	migration/migration.c
      	migration/migration.h
      	vl.c
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20190401090827.20793-3-armbru@redhat.com>
      Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
      811f8652
    • M
      Revert "vl: Fix to create migration object before block backends again" · 2fa23277
      Markus Armbruster 提交于
      This reverts commit e60483f2.
      
      Recent commit cda4aa9a moved block backend creation before machine
      property evaluation.  This broke block backends registering migration
      blockers.  Commit e60483f2 fixed it by moving migration object
      creation before block backend creation.  This broke migration with
      Xen.  Turns out we need to configure the accelerator before we create
      the migration object so that Xen's accelerator compat properties get
      applied.  Revert the flawed commit.  This fixes the Xen regression,
      but brings back the block backend regression.  The next commits will
      fix it again.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20190401090827.20793-2-armbru@redhat.com>
      Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
      2fa23277
    • M
      vl: Fix error location of positional arguments · 17f30eae
      Markus Armbruster 提交于
      We blame badness in positional arguments on the last option argument:
      
          $ qemu-system-x86_64 -vnc :1 bad.img
          qemu-system-x86_64: -vnc :1: Could not open 'foo': No such file or directory
      
      I believe we've done this ever since we reported locations.  Fix it to
      
          qemu-system-x86_64: bad.img: Could not open 'bad.img': No such file or directory
      Reported-by: NDaniel P. Berrangé <berrange@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20190318183312.4684-1-armbru@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: NStefano Garzarella <sgarzare@redhat.com>
      17f30eae
  14. 19 3月, 2019 1 次提交
  15. 13 3月, 2019 1 次提交
  16. 12 3月, 2019 7 次提交
  17. 11 3月, 2019 2 次提交
    • K
      audio: -audiodev command line option basic implementation · 71830221
      Kővágó, Zoltán 提交于
      Audio drivers now get an Audiodev * as config paramters, instead of the
      global audio_option structs.  There is some code in audio/audio_legacy.c
      that converts the old environment variables to audiodev options (this
      way backends do not have to worry about legacy options).  It also
      contains a replacement of -audio-help, which prints out the equivalent
      -audiodev based config of the currently specified environment variables.
      
      Note that backends are not updated and still rely on environment
      variables.
      
      Also note that (due to moving try-poll from global to backend specific
      option) currently ALSA and OSS will always try poll mode, regardless of
      environment variables or -audiodev options.
      Signed-off-by: NKővágó, Zoltán <DirtY.iCE.hu@gmail.com>
      Message-id: e99a7cbdac0d13512743880660b2032024703e4c.1552083282.git.DirtY.iCE.hu@gmail.com
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      71830221
    • B
      hw/display: Add basic ATI VGA emulation · 862b4a29
      BALATON Zoltan 提交于
      At least two machines, the PPC mac99 and MIPS fulong2e, have an ATI
      gfx chip by default (Rage 128 Pro and M6/RV100 respectively) and
      guests running on these and the PMON2000 firmware of the fulong2e
      expect this to be available. Fortunately these are very similar chips
      so they can be mostly emulated in the same device model. This patch
      adds basic emulation of these ATI VGA chips.
      
      While this is incomplete and currently only enough to run the MIPS
      firmware and get framebuffer output with Linux, it allows the fulong2e
      board to work more like the real hardware and having it in QEMU in
      this state provides a way to experiment with it and allows others to
      contribute to improve it. It is compiled for all archs but only the
      fulong2e (which currently has no display output at all) is set to use
      it by default (in a separate patch).
      Signed-off-by: NBALATON Zoltan <balaton@eik.bme.hu>
      Acked-by: NAleksandar Markovic <amarkovic@wavecomp.com>
      Tested-by: NAndrew Randrianasulu <randrianasulu@gmail.com>
      Tested-by: NHoward Spoelstra <hsp.cat7@gmail.com>
      Message-id: 0b1b7c22873a6e37627261b04fb687412b25ff4f.1552152100.git.balaton@eik.bme.hu
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      862b4a29
  18. 07 3月, 2019 1 次提交
  19. 06 3月, 2019 2 次提交
  20. 05 3月, 2019 1 次提交