qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 359218: kbd-state: don't block auto-repeat ev


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 359218: kbd-state: don't block auto-repeat events
Date: Mon, 25 Feb 2019 04:48:46 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 35921860156e39f17ffd7e18d0f84d2396a6e8f4
      
https://github.com/qemu/qemu/commit/35921860156e39f17ffd7e18d0f84d2396a6e8f4
  Author: Gerd Hoffmann <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/kbd-state.c

  Log Message:
  -----------
  kbd-state: don't block auto-repeat events

Signed-off-by: Gerd Hoffmann <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Message-id: address@hidden


  Commit: be812c0ab7d5ab741d0d87387a75a0e8bb6461e7
      
https://github.com/qemu/qemu/commit/be812c0ab7d5ab741d0d87387a75a0e8bb6461e7
  Author: Lukáš Hrázký <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M hw/display/qxl.c
    M include/ui/spice-display.h
    M ui/spice-core.c
    M ui/spice-display.c

  Log Message:
  -----------
  spice: set device address and device display ID in QXL interface

Calls the new SPICE QXL interface function spice_qxl_set_device_info to
set the hardware address of the graphics device represented by the QXL
interface (e.g. a PCI path) and the device display IDs (the IDs of the
device's monitors that belong to this QXL interface).

Also stops using the deprecated spice_qxl_set_max_monitors, the new
interface function replaces it.

Signed-off-by: Lukáš Hrázký <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: d51b8cb9479d369f85f40af812be0b7cef5bc6fd
      
https://github.com/qemu/qemu/commit/d51b8cb9479d369f85f40af812be0b7cef5bc6fd
  Author: Gerd Hoffmann <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/sdl2-input.c

  Log Message:
  -----------
  sdl2: drop qemu_input_event_send_key_qcode call

qkbd_state_key_event() does that for us.

Fixes: 07333e1ca3 kbd-state: use state tracker for sdl2
Reported-by: BALATON Zoltan <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
Tested-by: BALATON Zoltan <address@hidden>
Message-id: address@hidden


  Commit: ac38378950328d8ed808aae66733716a71900f2a
      
https://github.com/qemu/qemu/commit/ac38378950328d8ed808aae66733716a71900f2a
  Author: Thomas Huth <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/gtk.c

  Log Message:
  -----------
  ui/gtk: Fix the license information

The license information in this file is very messy. A short note at
the beginning says GPL first, but the long boilerplate code then
talks about "GNU Lesser General Public License version 2.0". First,
there is no such version of the "GNU Lesser GPL", it only started with
version 2.1. In version 2.0, it was still called "GNU Library GPL"
instead. Second, you can easily get the license of this file wrong
if you only quickly glance at the long boilerplate code.

Anyway, looking at the text of the LGPL (see COPYING.LIB in the top
directory), the license clearly states in section "3." that one should
rather replace the license information with the GPL information in
such a case of a mixture instead. Thus let's clean up the confusing
statements and use the proper GPL text only.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Message-id: address@hidden

[ kraxel: s/v2/v2+/ as requested by Daniel ]

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 805189ab14380a963db445aa083d5049c523486c
      
https://github.com/qemu/qemu/commit/805189ab14380a963db445aa083d5049c523486c
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M chardev/spice.c

  Log Message:
  -----------
  char/spice: trigger HUP event

Inform the front-end of disconnected state (spice client
disconnected).

This will wakeup the source handler immediately, so it can detect the
disconnection asap.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: a2dc3c8ecb5c1c5c42dec9ce76db3832a65128ac
      
https://github.com/qemu/qemu/commit/a2dc3c8ecb5c1c5c42dec9ce76db3832a65128ac
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M chardev/spice.c
    M chardev/trace-events

  Log Message:
  -----------
  char/spice: discard write() if backend is disconnected

Most chardev backend handle write() as discarded data if underlying
system is disconnected. For unknown historical reasons, the Spice
backend has "reliable" write: it will wait until the client end is
reconnected to do further successful write().

To decide whether it make sense to wait until the client is
reconnected (or queue the writes), let's review Spice chardev usage
and handling of a disconnected client:

 * spice vdagent
   The agents reopen the virtio port on disconnect. In qemu side,
   virtio_serial_close() will also discard pending data.

 * usb redirection
   A disconnect creates a device disconnection.

 * smartcard emulation
   Data is discarded in passthru_apdu_from_guest().

   (Spice doesn't explicitly open the smartcard char device until
   upcoming 0.14.2, commit 69a5cfc74131ec0459f2eb5a231139f5a69a8037)

 * spice webdavd
   The daemon will restart the service, and reopen the virtio port.

 * spice ports (serial console, qemu monitor..)
   Depends on the associated device or usage.

   - serial, may be throttled or discarded on write, depending on
     device

   - QMP/HMP monitor have some CLOSED event handling, but want to
     flush the write, which will finish when a new client connects.

On disconnect/reconnect, the client starts with fresh sessions. If it
is a seamless migration, the client disconnects after the source
migrated. The handling of source disconnect in qemu is thus irrelevant
for the Spice session migration.

For all these use cases, it is better to discard writes when the
client is disconnected, and require the vm-side device/agent to behave
correctly on CHR_EVENT_CLOSED, to stop reading and writing from
the spice chardev.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 83f7180227a4c383e00fcbc0c079805557a657c8
      
https://github.com/qemu/qemu/commit/83f7180227a4c383e00fcbc0c079805557a657c8
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/spice-core.c

  Log Message:
  -----------
  spice: avoid spice runtime assert

The Spice server doesn't like to be started or stopped twice . It
aborts with:

(process:6191): Spice-ERROR **: 19:29:35.912: 
red-worker.c:623:handle_dev_start: assertion `!worker->running' failed

It's easy to avoid that situation since qemu spice_display_is_running
tracks the server state.

After the commit "spice: do not stop spice if VM is paused", it will
be possible to pause and resume the VM, and this will call
qemu_spice_display_start() twice. The easiest is to add a check for
spice_display_is_running with this patch to avoid the assert.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 79216718f921505347bbfc61a4161adef6185cf2
      
https://github.com/qemu/qemu/commit/79216718f921505347bbfc61a4161adef6185cf2
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/spice-core.c

  Log Message:
  -----------
  spice: merge options lists

Passing several -spice options to qemu command line, or calling
several time qemu_opts_set() will ignore all but the first option
list. Since the spice server is a singleton, it makes sense to merge
all the options, the last value being the one taken into account.

This changes the behaviour from, for ex:
$ qemu... -spice port=5900 -spice port=5901 -> port: 5900
to:
$ qemu... -spice port=5900 -spice port=5901 -> port: 5901

(if necessary we could instead produce an error when an option is
given twice, although this makes handling default values and such more
complicated)

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 5b1638bc49b7bb5686a3351611c24ab7863306f1
      
https://github.com/qemu/qemu/commit/5b1638bc49b7bb5686a3351611c24ab7863306f1
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/spice-core.c

  Log Message:
  -----------
  spice: do not stop spice if VM is paused

spice_server_vm_start/stop() was added to help migration state (commit
f5bb039c6d97ef3e664094eab3c9a4dc1824ed73).

However, a paused VM could keep running the spice server. This will
allow a Spice client to keep sending commands to a spice chardev. This
allows to stop/cont a VM from a Spice monitor port. Character
devices (vdagent/usb/smartcard/..) should not read from Spice when the
VM is paused.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 24fa7da3ca6a6e385e50befa3774b7d427594ce4
      
https://github.com/qemu/qemu/commit/24fa7da3ca6a6e385e50befa3774b7d427594ce4
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M chardev/spice.c
    A include/chardev/spice.h

  Log Message:
  -----------
  char: move SpiceChardev and open_spice_port() to spice.h header

This will allow easier subclassing of SpiceChardev, in upcoming
"display: add -display spice-app launching external application"
patch.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 8afbff1652eb156b1482a577513061bd226d3cea
      
https://github.com/qemu/qemu/commit/8afbff1652eb156b1482a577513061bd226d3cea
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M chardev/spice.c

  Log Message:
  -----------
  char: register spice ports after spice started

Spice port registration is delayed until the server is started. But
ports created after are not being registered. If the server is already
started, do vmc_register_interface() to register it from
qemu_chr_open_spice_port().

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: f876b765ef177d93e4f7c976c8c14761ae9eeaf1
      
https://github.com/qemu/qemu/commit/f876b765ef177d93e4f7c976c8c14761ae9eeaf1
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M configure

  Log Message:
  -----------
  build-sys: add gio-2.0 check

GIO is required for the "-display spice-app" backend.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 42176d7703c6bbf61d7e8496adabc6176cde2b8c
      
https://github.com/qemu/qemu/commit/42176d7703c6bbf61d7e8496adabc6176cde2b8c
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M qapi/ui.json

  Log Message:
  -----------
  qapi: document DisplayType enum

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 4c77ee12da78d0e2222ac9f6fd067f1d451da5cb
      
https://github.com/qemu/qemu/commit/4c77ee12da78d0e2222ac9f6fd067f1d451da5cb
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-21 (Thu, 21 Feb 2019)

  Changed paths:
    M ui/spice-core.c

  Log Message:
  -----------
  spice: use a default name for the server

If no -name is given, let's use a friendly "QEMU version" server
name. This is sometime exposed on spice client side, for example on
remote-viewer title.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: d8aec9d9f129e6879ae0669623981892deff86f2
      
https://github.com/qemu/qemu/commit/d8aec9d9f129e6879ae0669623981892deff86f2
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-02-22 (Fri, 22 Feb 2019)

  Changed paths:
    M qapi/ui.json
    M qemu-options.hx
    M ui/Makefile.objs
    A ui/spice-app.c

  Log Message:
  -----------
  display: add -display spice-app launching a Spice client

Add a new display backend that will configure Spice to allow a remote
client to control QEMU in a similar fashion as other QEMU display
backend/UI like GTK.

For this to work, it will set up Spice server with a unix socket, and
register a VC chardev that will be exposed as Spice ports. A QMP
monitor is also exposed as a Spice port, this allows the remote client
fuller qemu control and state handling.

- doesn't handle VC set_echo() - this doesn't seem a strong
  requirement, very few front-end use it
- spice options can be tweaked with other -spice arguments
- Windows support shouldn't be hard to do, but will probably use a TCP
  port instead
- we may want to watch the child process to quit automatically if it
  crashed

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Victor Toso <address@hidden>
Message-id: address@hidden

[ kraxel: squash incremental fix ]

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 8a4c08b16187c238f05aa783c8deedb8099e940d
      
https://github.com/qemu/qemu/commit/8a4c08b16187c238f05aa783c8deedb8099e940d
  Author: Peter Maydell <address@hidden>
  Date:   2019-02-25 (Mon, 25 Feb 2019)

  Changed paths:
    M chardev/spice.c
    M chardev/trace-events
    M configure
    M hw/display/qxl.c
    A include/chardev/spice.h
    M include/ui/spice-display.h
    M qapi/ui.json
    M qemu-options.hx
    M ui/Makefile.objs
    M ui/gtk.c
    M ui/kbd-state.c
    M ui/sdl2-input.c
    A ui/spice-app.c
    M ui/spice-core.c
    M ui/spice-display.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190222-pull-request' 
into staging

ui: add support for -display spice-app
ui: gtk+sdl bugfixes.

# gpg: Signature made Fri 22 Feb 2019 07:53:13 GMT
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <address@hidden>" [full]
# gpg:                 aka "Gerd Hoffmann <address@hidden>" [full]
# gpg:                 aka "Gerd Hoffmann (private) <address@hidden>" [full]
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/ui-20190222-pull-request:
  display: add -display spice-app launching a Spice client
  spice: use a default name for the server
  qapi: document DisplayType enum
  build-sys: add gio-2.0 check
  char: register spice ports after spice started
  char: move SpiceChardev and open_spice_port() to spice.h header
  spice: do not stop spice if VM is paused
  spice: merge options lists
  spice: avoid spice runtime assert
  char/spice: discard write() if backend is disconnected
  char/spice: trigger HUP event
  ui/gtk: Fix the license information
  sdl2: drop qemu_input_event_send_key_qcode call
  spice: set device address and device display ID in QXL interface
  kbd-state: don't block auto-repeat events

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/8eb29f1bf5a9...8a4c08b16187



reply via email to

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