Patchwork [v3,0/9] serial device hotplug patch series.

login
register
mail settings
Submitter Gerd Hoffmann
Date Oct. 15, 2012, 8:06 a.m.
Message ID <1350288417-24350-1-git-send-email-kraxel@redhat.com>
Download mbox
Permalink /patch/191481/
State New
Headers show

Pull-request

git://git.kraxel.org/qemu serial.2

Comments

Gerd Hoffmann - Oct. 15, 2012, 8:06 a.m.
This patch series tackles serial device hotplug.

The first four patches have been on the list before, they implement
pci-serial devices featuring a hot-pluggable 16550 uart and got some
minor tweaks only.

The next two patches update the usb-serial device.  It will only show up
in the guest when the chardev is open.  You'll see the difference with
socket chardevs:  If you open the chardev (by connecting to the socket)
the device will show up in the guest, on close (disconnect) it will
disappear.

Final three patches cleanup chardev a bit and adds chardev hotplug to
the mix, which makes the other patches alot more useful.  It is the
missing bit needed to really hotplug serial devices:

   (qemu) chardev_add file,id=pciserial,path=/root/hotchardev.log
   (qemu) device_add pci-serial,id=pciserial,chardev=pciserial

And the reverse:

   (qemu) device_del pciserial
   (qemu) chardev_del pciserial

New in v2:
 - added two chardev cleanup patches.
 - switched chardev_{add,del} commands to netdev_{add,del} style.

cheers,
  Gerd

The following changes since commit 8b4a3df8081f3e6f1061ed5cbb303ad623ade66b:

  Fix popcnt in long mode (2012-10-14 14:55:09 +0400)

are available in the git repository at:
  git://git.kraxel.org/qemu serial.2

Gerd Hoffmann (9):
      serial: split serial.c
      serial: add pci variant
      serial: add windows inf file for the pci card to docs
      serial: add 2x + 4x pci variant
      usb-serial: don't magically zap chardev on umplug
      usb-serial: only expose device in guest when the chardev is open
      chardev: add error reporting for qemu_chr_new_from_opts
      chardev: fix QemuOpts lifecycle
      chardev: add hotplug support.

 default-configs/pci.mak  |    2 +
 docs/qemupciserial.inf   |  109 ++++++++++++++++++
 hmp-commands.hx          |   32 ++++++
 hmp.c                    |   23 ++++
 hmp.h                    |    2 +
 hw/Makefile.objs         |    3 +-
 hw/alpha_dp264.c         |    1 +
 hw/kzm.c                 |    2 +-
 hw/mips_fulong2e.c       |    1 +
 hw/mips_jazz.c           |    1 +
 hw/mips_malta.c          |    1 +
 hw/mips_mipssim.c        |    2 +-
 hw/mips_r4k.c            |    1 +
 hw/musicpal.c            |    2 +-
 hw/omap_uart.c           |    3 +-
 hw/openrisc_sim.c        |    3 +-
 hw/pc.c                  |    1 +
 hw/pc.h                  |   27 -----
 hw/pci_ids.h             |    1 +
 hw/petalogix_ml605_mmu.c |    2 +-
 hw/ppc/e500.c            |    2 +-
 hw/ppc405_uc.c           |    2 +-
 hw/ppc440_bamboo.c       |    2 +-
 hw/ppc_prep.c            |    1 +
 hw/pxa2xx.c              |    2 +-
 hw/serial-isa.c          |  130 ++++++++++++++++++++++
 hw/serial-pci.c          |  272 ++++++++++++++++++++++++++++++++++++++++++++++
 hw/serial.c              |  149 ++-----------------------
 hw/serial.h              |   74 +++++++++++++
 hw/sm501.c               |    2 +-
 hw/sun4u.c               |    1 +
 hw/usb/dev-serial.c      |   21 +++-
 hw/virtex_ml507.c        |    2 +-
 hw/xtensa_lx60.c         |    3 +-
 qapi-schema.json         |   39 +++++++
 qemu-char.c              |   83 ++++++++++++---
 qemu-char.h              |    5 +-
 qmp-commands.hx          |   61 ++++++++++
 vl.c                     |    7 +-
 39 files changed, 878 insertions(+), 199 deletions(-)
 create mode 100644 docs/qemupciserial.inf
 create mode 100644 hw/serial-isa.c
 create mode 100644 hw/serial-pci.c
 create mode 100644 hw/serial.h
Luiz Capitulino - Oct. 17, 2012, 1:52 a.m.
On Mon, 15 Oct 2012 10:06:48 +0200
Gerd Hoffmann <kraxel@redhat.com> wrote:

> This patch series tackles serial device hotplug.

This conflicts with Paolo's work merged in:

 git://repo.or.cz/qemu/qmp-unstable.git queue/qmp

You could base your work on top of that to avoid conflicts, but note that
I might rebase that branch.

> 
> The first four patches have been on the list before, they implement
> pci-serial devices featuring a hot-pluggable 16550 uart and got some
> minor tweaks only.
> 
> The next two patches update the usb-serial device.  It will only show up
> in the guest when the chardev is open.  You'll see the difference with
> socket chardevs:  If you open the chardev (by connecting to the socket)
> the device will show up in the guest, on close (disconnect) it will
> disappear.
> 
> Final three patches cleanup chardev a bit and adds chardev hotplug to
> the mix, which makes the other patches alot more useful.  It is the
> missing bit needed to really hotplug serial devices:
> 
>    (qemu) chardev_add file,id=pciserial,path=/root/hotchardev.log
>    (qemu) device_add pci-serial,id=pciserial,chardev=pciserial
> 
> And the reverse:
> 
>    (qemu) device_del pciserial
>    (qemu) chardev_del pciserial
> 
> New in v2:
>  - added two chardev cleanup patches.
>  - switched chardev_{add,del} commands to netdev_{add,del} style.
> 
> cheers,
>   Gerd
> 
> The following changes since commit 8b4a3df8081f3e6f1061ed5cbb303ad623ade66b:
> 
>   Fix popcnt in long mode (2012-10-14 14:55:09 +0400)
> 
> are available in the git repository at:
>   git://git.kraxel.org/qemu serial.2
> 
> Gerd Hoffmann (9):
>       serial: split serial.c
>       serial: add pci variant
>       serial: add windows inf file for the pci card to docs
>       serial: add 2x + 4x pci variant
>       usb-serial: don't magically zap chardev on umplug
>       usb-serial: only expose device in guest when the chardev is open
>       chardev: add error reporting for qemu_chr_new_from_opts
>       chardev: fix QemuOpts lifecycle
>       chardev: add hotplug support.
> 
>  default-configs/pci.mak  |    2 +
>  docs/qemupciserial.inf   |  109 ++++++++++++++++++
>  hmp-commands.hx          |   32 ++++++
>  hmp.c                    |   23 ++++
>  hmp.h                    |    2 +
>  hw/Makefile.objs         |    3 +-
>  hw/alpha_dp264.c         |    1 +
>  hw/kzm.c                 |    2 +-
>  hw/mips_fulong2e.c       |    1 +
>  hw/mips_jazz.c           |    1 +
>  hw/mips_malta.c          |    1 +
>  hw/mips_mipssim.c        |    2 +-
>  hw/mips_r4k.c            |    1 +
>  hw/musicpal.c            |    2 +-
>  hw/omap_uart.c           |    3 +-
>  hw/openrisc_sim.c        |    3 +-
>  hw/pc.c                  |    1 +
>  hw/pc.h                  |   27 -----
>  hw/pci_ids.h             |    1 +
>  hw/petalogix_ml605_mmu.c |    2 +-
>  hw/ppc/e500.c            |    2 +-
>  hw/ppc405_uc.c           |    2 +-
>  hw/ppc440_bamboo.c       |    2 +-
>  hw/ppc_prep.c            |    1 +
>  hw/pxa2xx.c              |    2 +-
>  hw/serial-isa.c          |  130 ++++++++++++++++++++++
>  hw/serial-pci.c          |  272 ++++++++++++++++++++++++++++++++++++++++++++++
>  hw/serial.c              |  149 ++-----------------------
>  hw/serial.h              |   74 +++++++++++++
>  hw/sm501.c               |    2 +-
>  hw/sun4u.c               |    1 +
>  hw/usb/dev-serial.c      |   21 +++-
>  hw/virtex_ml507.c        |    2 +-
>  hw/xtensa_lx60.c         |    3 +-
>  qapi-schema.json         |   39 +++++++
>  qemu-char.c              |   83 ++++++++++++---
>  qemu-char.h              |    5 +-
>  qmp-commands.hx          |   61 ++++++++++
>  vl.c                     |    7 +-
>  39 files changed, 878 insertions(+), 199 deletions(-)
>  create mode 100644 docs/qemupciserial.inf
>  create mode 100644 hw/serial-isa.c
>  create mode 100644 hw/serial-pci.c
>  create mode 100644 hw/serial.h
>