1. 27 11月, 2018 1 次提交
  2. 12 11月, 2018 1 次提交
    • T
      bt: Mark the bluetooth subsystem as deprecated · c0188e69
      Thomas Huth 提交于
      It has been unmaintained since years, and there were only trivial or
      tree-wide changes to the related files since many years, so the
      code is likely very bitrotten and broken. For example the following
      segfaults as soon as as you press a key:
      
       qemu-system-x86_64 -usb -device usb-bt-dongle -bt hci -bt device:keyboard
      
      Since we are not aware of anybody using bluetooth with the current
      version of QEMU, let's mark the subsystem as deprecated, with a special
      request for the users to write to the qemu-devel mailing list in case
      they still use it (so we could revert the deprecation status in that
      case).
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Message-id: 1542016830-19189-1-git-send-email-thuth@redhat.com
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      c0188e69
  3. 07 11月, 2018 1 次提交
    • E
      vl: Avoid crash when -mon is underspecified · 0c57893d
      Eric Blake 提交于
      A quick coredump on an incomplete command line:
      ./x86_64-softmmu/qemu-system-x86_64 -mon mode=control,pretty=on
      
       #0  0x00007ffff723d9e4 in g_str_hash () at /lib64/libglib-2.0.so.0
       #1  0x00007ffff723ce38 in g_hash_table_lookup () at /lib64/libglib-2.0.so.0
       #2  0x0000555555cc0073 in object_class_property_find (klass=0x5555566a94b0, name=0x0, errp=0x0) at qom/object.c:1135
       #3  0x0000555555cc004b in object_class_property_find (klass=0x5555566a9440, name=0x0, errp=0x0) at qom/object.c:1129
       #4  0x0000555555cbfe6e in object_property_find (obj=0x5555568348c0, name=0x0, errp=0x0) at qom/object.c:1080
       #5  0x0000555555cc183d in object_resolve_path_component (parent=0x5555568348c0, part=0x0) at qom/object.c:1762
       #6  0x0000555555d82071 in qemu_chr_find (name=0x0) at chardev/char.c:802
       #7  0x00005555559d77cb in mon_init_func (opaque=0x0, opts=0x5555566b65a0, errp=0x0) at vl.c:2291
      
      Fix it to instead fail gracefully.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20181023213600.364086-1-eblake@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: NPeter Xu <peterx@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      0c57893d
  4. 05 11月, 2018 2 次提交
  5. 24 10月, 2018 2 次提交
    • I
      vl:c: make sure that sockets are calculated correctly in '-smp X' case · 268430be
      Igor Mammedov 提交于
      commit
        (5cdc9b76 vl.c: Remove dead assignment)
      removed sockets calculation when 'sockets' weren't provided on CLI
      since there wasn't any users for it back then. Exiting checks
      are neither reachable
         } else if (sockets * cores * threads < cpus) {
      or nor triggerable
         if (sockets * cores * threads > max_cpus)
      so we weren't noticing wrong topology since then, since users
      recalculate sockets adhoc on their own.
      
      However with deprecation check it becomes noticable, for example
        -smp 2
      will start printing warning:
        "warning: Invalid CPU topology deprecated: sockets (1) * cores (1) * threads (1) != maxcpus (2)"
      calculating sockets if they weren't specified.
      
      Fix it by returning back sockets calculation if it's omitted on CLI.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Reviewed-by: NAndrew Jones <drjones@redhat.com>
      Message-Id: <1536836762-273036-3-git-send-email-imammedo@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      268430be
    • I
      vl.c deprecate incorrect CPUs topology · bc1fb850
      Igor Mammedov 提交于
      -smp [cpus],sockets/cores/threads[,maxcpus] should describe topology
      so that total number of logical CPUs [sockets * cores * threads]
      would be equal to [maxcpus], however historically we didn't have
      such check in QEMU and it is possible to start VM with an invalid
      topology.
      Deprecate invalid options combination so we can make sure that
      the topology VM started with is always correct in the future.
      Users with an invalid sockets/cores/threads/maxcpus values should
      fix their CLI to make sure that
         [sockets * cores * threads] == [maxcpus]
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Reviewed-by: NAndrew Jones <drjones@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      Message-Id: <1536836762-273036-2-git-send-email-imammedo@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      [ehabkost: squashed unit test fix]
      Message-Id: <20181019215345.521d58d7@igors-macbook-pro.local>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      bc1fb850
  6. 19 10月, 2018 21 次提交
  7. 05 10月, 2018 2 次提交
  8. 03 10月, 2018 4 次提交
    • M
      chardev: mark the calls that allow an implicit mux monitor · 95e30b2a
      Marc-André Lureau 提交于
      This is mostly for readability of the code. Let's make it clear which
      callers can create an implicit monitor when the chardev is muxed.
      
      This will also enforce a safer behaviour, as we don't really support
      creating monitor anywhere/anytime at the moment. Add an assert() to
      make sure the programmer explicitely wanted that behaviour.
      
      There are documented cases, such as: -serial/-parallel/-virtioconsole
      and to less extent -debugcon.
      
      Less obvious and questionable ones are -gdb, SLIRP -guestfwd and Xen
      console. Add a FIXME note for those, but keep the support for now.
      
      Other qemu_chr_new() callers either have a fixed parameter/filename
      string or do not need it, such as -qtest:
      
      * qtest.c: qtest_init()
        Afaik, only used by tests/libqtest.c, without mux. I don't think we
        support it outside of qemu testing: drop support for implicit mux
        monitor (qemu_chr_new() call: no implicit mux now).
      
      * hw/
        All with literal @filename argument that doesn't enable mux monitor.
      
      * tests/
        All with @filename argument that doesn't enable mux monitor.
      
      On a related note, the list of monitor creation places:
      
      - the chardev creators listed above: all from command line (except
        perhaps Xen console?)
      
      - -gdb & hmp gdbserver will create a "GDB monitor command" chardev
        that is wired to an HMP monitor.
      
      - -mon command line option
      
      From this short study, I would like to think that a monitor may only
      be created in the main thread today, though I remain skeptical :)
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      95e30b2a
    • P
      replay: allow loading any snapshots before recording · bb3d7702
      Pavel Dovgalyuk 提交于
      This patch enables using -loadvm in recording mode to allow starting
      the execution recording from any of the available snapshots.
      It also fixes loading of the record/replay state, therefore snapshots
      created in replay mode may also be used for starting the new recording.
      Signed-off-by: NPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
      Message-Id: <20180912081939.3228.56131.stgit@pasha-VirtualBox>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      bb3d7702
    • M
      Delete PID file on exit · 90a84d13
      Marc-André Lureau 提交于
      Register an exit notifier to remove the PID file. By the time atexit()
      is called, qemu_write_pidfile() guarantees QEMU owns the PID file,
      thus we could safely remove it when exiting.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20180907121319.8607-4-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      90a84d13
    • M
      util: add qemu_write_pidfile() · 9e6bdef2
      Marc-André Lureau 提交于
      There are variants of qemu_create_pidfile() in qemu-pr-helper and
      qemu-ga. Let's have a common implementation in libqemuutil.
      
      The code is initially based from pr-helper write_pidfile(), with
      various improvements and suggestions from Daniel Berrangé:
      
        QEMU will leave the pidfile existing on disk when it exits which
        initially made me think it avoids the deletion race. The app
        managing QEMU, however, may well delete the pidfile after it has
        seen QEMU exit, and even if the app locks the pidfile before
        deleting it, there is still a race.
      
        eg consider the following sequence
      
              QEMU 1        libvirtd        QEMU 2
      
        1.    lock(pidfile)
      
        2.    exit()
      
        3.                 open(pidfile)
      
        4.                 lock(pidfile)
      
        5.                                  open(pidfile)
      
        6.                 unlink(pidfile)
      
        7.                 close(pidfile)
      
        8.                                  lock(pidfile)
      
        IOW, at step 8 the new QEMU has successfully acquired the lock, but
        the pidfile no longer exists on disk because it was deleted after
        the original QEMU exited.
      
        While we could just say no external app should ever delete the
        pidfile, I don't think that is satisfactory as people don't read
        docs, and admins don't like stale pidfiles being left around on
        disk.
      
        To make this robust, I think we might want to copy libvirt's
        approach to pidfile acquisition which runs in a loop and checks that
        the file on disk /after/ acquiring the lock matches the file that
        was locked. Then we could in fact safely let QEMU delete its own
        pidfiles on clean exit..
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20180831145314.14736-2-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      9e6bdef2
  9. 26 9月, 2018 2 次提交
  10. 31 8月, 2018 4 次提交