All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Durrant <paul.durrant@citrix.com>
To: qemu-devel@nongnu.org, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Tim Smith" <tim.smith@citrix.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Greg Kurz" <groug@kaod.org>, "Max Reitz" <mreitz@redhat.com>,
	"Paul Durrant" <paul.durrant@citrix.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>
Subject: [PATCH v3 00/18] Xen PV backend 'qdevification'
Date: Tue, 11 Dec 2018 10:47:00 +0000	[thread overview]
Message-ID: <1544525238-3527-1-git-send-email-paul.durrant@citrix.com> (raw)

This series introduces a new QOM compliant framework for Xen PV backends.
This is achieved by first moving the current non-compliant framework aside,
before building up a new framework incrementally.

This series was prompted by a thread [1] started by Kevin Wolf in response
to patches against xen_disk.c posted by Tim Smith. Therefore, alongside
the patches introducing the new framework, other patches build up a QOM
compliant replacement for 'xen_disk', called 'xen-qdisk'. Patch #16 swaps
this new device into place (having establisheda mechanism to auto-
instantiate devices that is compliant with existing Xen toolstacks in
patch #15) and patch #18 then removes the old xen_disk code.

Subsequent series will port other Xen PV backends across to the new
framework.

The series is also available as a repository branch [2] on xenbits.xen.org.

[1] https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg00259.html
[2] http://xenbits.xen.org/gitweb/?p=people/pauldu/qemu.git;a=shortlog;h=refs/heads/qom29

Paul Durrant (18):
  xen: re-name XenDevice to XenLegacyDevice...
  xen: introduce new 'XenBus' and 'XenDevice' object hierarchy
  xen: introduce 'xen-block', 'xen-disk' and 'xen-cdrom'
  xen: create xenstore areas for XenDevice-s
  xen: add xenstore watcher infrastructure
  xen: add grant table interface for XenDevice-s
  xen: add event channel interface for XenDevice-s
  xen: duplicate xen_disk.c as basis of dataplane/xen-block.c
  xen: remove unnecessary code from dataplane/xen-block.c
  xen: add header and build dataplane/xen-block.c
  xen: remove 'XenBlkDev' and 'blkdev' names from dataplane/xen-block
  xen: remove 'ioreq' struct/varable/field names from
    dataplane/xen-block.c
  xen: purge 'blk' and 'ioreq' from function names in
    dataplane/xen-block.c
  xen: add implementations of xen-block connect and disconnect
    functions...
  xen: add a mechanism to automatically create XenDevice-s...
  xen: automatically create XenBlockDevice-s
  MAINTAINERS: add myself as a Xen maintainer
  xen: remove the legacy 'xen_disk' backend

 MAINTAINERS                         |    5 +-
 hw/9pfs/xen-9p-backend.c            |   16 +-
 hw/block/Makefile.objs              |    2 +-
 hw/block/dataplane/Makefile.objs    |    1 +
 hw/block/dataplane/xen-block.c      |  814 ++++++++++++++++++++++++
 hw/block/dataplane/xen-block.h      |   29 +
 hw/block/trace-events               |   11 +
 hw/block/xen-block.c                |  847 +++++++++++++++++++++++++
 hw/block/xen_disk.c                 | 1011 -----------------------------
 hw/char/xen_console.c               |   12 +-
 hw/display/xenfb.c                  |   25 +-
 hw/i386/xen/xen-hvm.c               |    5 +-
 hw/i386/xen/xen-mapcache.c          |    2 +-
 hw/i386/xen/xen_platform.c          |    2 +-
 hw/net/xen_nic.c                    |   14 +-
 hw/usb/xen-usb.c                    |   25 +-
 hw/xen/Makefile.objs                |    2 +-
 hw/xen/trace-events                 |   26 +
 hw/xen/xen-backend.c                |   69 ++
 hw/xen/xen-bus-helper.c             |  184 ++++++
 hw/xen/xen-bus.c                    | 1189 +++++++++++++++++++++++++++++++++++
 hw/xen/xen-common.c                 |    2 +-
 hw/xen/xen-legacy-backend.c         |  853 +++++++++++++++++++++++++
 hw/xen/xen_backend.c                |  845 -------------------------
 hw/xen/xen_devconfig.c              |    2 +-
 hw/xen/xen_pt.c                     |    2 +-
 hw/xen/xen_pt_config_init.c         |    2 +-
 hw/xen/xen_pt_graphics.c            |    2 +-
 hw/xen/xen_pt_msi.c                 |    2 +-
 hw/xen/xen_pvdev.c                  |   20 +-
 hw/xenpv/xen_domainbuild.c          |    2 +-
 hw/xenpv/xen_machine_pv.c           |    5 +-
 include/hw/xen/xen-backend.h        |   26 +
 include/hw/xen/xen-block.h          |   79 +++
 include/hw/xen/xen-bus-helper.h     |   45 ++
 include/hw/xen/xen-bus.h            |  138 ++++
 include/hw/xen/xen-legacy-backend.h |  104 +++
 include/hw/xen/xen_backend.h        |   99 ---
 include/hw/xen/xen_pvdev.h          |   38 +-
 include/qemu/module.h               |    3 +
 40 files changed, 4518 insertions(+), 2042 deletions(-)
 create mode 100644 hw/block/dataplane/xen-block.c
 create mode 100644 hw/block/dataplane/xen-block.h
 create mode 100644 hw/block/xen-block.c
 delete mode 100644 hw/block/xen_disk.c
 create mode 100644 hw/xen/xen-backend.c
 create mode 100644 hw/xen/xen-bus-helper.c
 create mode 100644 hw/xen/xen-bus.c
 create mode 100644 hw/xen/xen-legacy-backend.c
 delete mode 100644 hw/xen/xen_backend.c
 create mode 100644 include/hw/xen/xen-backend.h
 create mode 100644 include/hw/xen/xen-block.h
 create mode 100644 include/hw/xen/xen-bus-helper.h
 create mode 100644 include/hw/xen/xen-bus.h
 create mode 100644 include/hw/xen/xen-legacy-backend.h
 delete mode 100644 include/hw/xen/xen_backend.h
---
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Greg Kurz <groug@kaod.org>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Smith <tim.smith@citrix.com>

v3:
 - Various fixes, including unplug

v2:
 - Fix boilerplates of introduced files and leave existing ones alone
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

WARNING: multiple messages have this Message-ID (diff)
From: Paul Durrant <paul.durrant@citrix.com>
To: qemu-devel@nongnu.org, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org
Cc: "Paul Durrant" <paul.durrant@citrix.com>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>, "Greg Kurz" <groug@kaod.org>,
	"Jason Wang" <jasowang@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Max Reitz" <mreitz@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Tim Smith" <tim.smith@citrix.com>
Subject: [Qemu-devel] [PATCH v3 00/18] Xen PV backend 'qdevification'
Date: Tue, 11 Dec 2018 10:47:00 +0000	[thread overview]
Message-ID: <1544525238-3527-1-git-send-email-paul.durrant@citrix.com> (raw)

This series introduces a new QOM compliant framework for Xen PV backends.
This is achieved by first moving the current non-compliant framework aside,
before building up a new framework incrementally.

This series was prompted by a thread [1] started by Kevin Wolf in response
to patches against xen_disk.c posted by Tim Smith. Therefore, alongside
the patches introducing the new framework, other patches build up a QOM
compliant replacement for 'xen_disk', called 'xen-qdisk'. Patch #16 swaps
this new device into place (having establisheda mechanism to auto-
instantiate devices that is compliant with existing Xen toolstacks in
patch #15) and patch #18 then removes the old xen_disk code.

Subsequent series will port other Xen PV backends across to the new
framework.

The series is also available as a repository branch [2] on xenbits.xen.org.

[1] https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg00259.html
[2] http://xenbits.xen.org/gitweb/?p=people/pauldu/qemu.git;a=shortlog;h=refs/heads/qom29

Paul Durrant (18):
  xen: re-name XenDevice to XenLegacyDevice...
  xen: introduce new 'XenBus' and 'XenDevice' object hierarchy
  xen: introduce 'xen-block', 'xen-disk' and 'xen-cdrom'
  xen: create xenstore areas for XenDevice-s
  xen: add xenstore watcher infrastructure
  xen: add grant table interface for XenDevice-s
  xen: add event channel interface for XenDevice-s
  xen: duplicate xen_disk.c as basis of dataplane/xen-block.c
  xen: remove unnecessary code from dataplane/xen-block.c
  xen: add header and build dataplane/xen-block.c
  xen: remove 'XenBlkDev' and 'blkdev' names from dataplane/xen-block
  xen: remove 'ioreq' struct/varable/field names from
    dataplane/xen-block.c
  xen: purge 'blk' and 'ioreq' from function names in
    dataplane/xen-block.c
  xen: add implementations of xen-block connect and disconnect
    functions...
  xen: add a mechanism to automatically create XenDevice-s...
  xen: automatically create XenBlockDevice-s
  MAINTAINERS: add myself as a Xen maintainer
  xen: remove the legacy 'xen_disk' backend

 MAINTAINERS                         |    5 +-
 hw/9pfs/xen-9p-backend.c            |   16 +-
 hw/block/Makefile.objs              |    2 +-
 hw/block/dataplane/Makefile.objs    |    1 +
 hw/block/dataplane/xen-block.c      |  814 ++++++++++++++++++++++++
 hw/block/dataplane/xen-block.h      |   29 +
 hw/block/trace-events               |   11 +
 hw/block/xen-block.c                |  847 +++++++++++++++++++++++++
 hw/block/xen_disk.c                 | 1011 -----------------------------
 hw/char/xen_console.c               |   12 +-
 hw/display/xenfb.c                  |   25 +-
 hw/i386/xen/xen-hvm.c               |    5 +-
 hw/i386/xen/xen-mapcache.c          |    2 +-
 hw/i386/xen/xen_platform.c          |    2 +-
 hw/net/xen_nic.c                    |   14 +-
 hw/usb/xen-usb.c                    |   25 +-
 hw/xen/Makefile.objs                |    2 +-
 hw/xen/trace-events                 |   26 +
 hw/xen/xen-backend.c                |   69 ++
 hw/xen/xen-bus-helper.c             |  184 ++++++
 hw/xen/xen-bus.c                    | 1189 +++++++++++++++++++++++++++++++++++
 hw/xen/xen-common.c                 |    2 +-
 hw/xen/xen-legacy-backend.c         |  853 +++++++++++++++++++++++++
 hw/xen/xen_backend.c                |  845 -------------------------
 hw/xen/xen_devconfig.c              |    2 +-
 hw/xen/xen_pt.c                     |    2 +-
 hw/xen/xen_pt_config_init.c         |    2 +-
 hw/xen/xen_pt_graphics.c            |    2 +-
 hw/xen/xen_pt_msi.c                 |    2 +-
 hw/xen/xen_pvdev.c                  |   20 +-
 hw/xenpv/xen_domainbuild.c          |    2 +-
 hw/xenpv/xen_machine_pv.c           |    5 +-
 include/hw/xen/xen-backend.h        |   26 +
 include/hw/xen/xen-block.h          |   79 +++
 include/hw/xen/xen-bus-helper.h     |   45 ++
 include/hw/xen/xen-bus.h            |  138 ++++
 include/hw/xen/xen-legacy-backend.h |  104 +++
 include/hw/xen/xen_backend.h        |   99 ---
 include/hw/xen/xen_pvdev.h          |   38 +-
 include/qemu/module.h               |    3 +
 40 files changed, 4518 insertions(+), 2042 deletions(-)
 create mode 100644 hw/block/dataplane/xen-block.c
 create mode 100644 hw/block/dataplane/xen-block.h
 create mode 100644 hw/block/xen-block.c
 delete mode 100644 hw/block/xen_disk.c
 create mode 100644 hw/xen/xen-backend.c
 create mode 100644 hw/xen/xen-bus-helper.c
 create mode 100644 hw/xen/xen-bus.c
 create mode 100644 hw/xen/xen-legacy-backend.c
 delete mode 100644 hw/xen/xen_backend.c
 create mode 100644 include/hw/xen/xen-backend.h
 create mode 100644 include/hw/xen/xen-block.h
 create mode 100644 include/hw/xen/xen-bus-helper.h
 create mode 100644 include/hw/xen/xen-bus.h
 create mode 100644 include/hw/xen/xen-legacy-backend.h
 delete mode 100644 include/hw/xen/xen_backend.h
---
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Greg Kurz <groug@kaod.org>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Smith <tim.smith@citrix.com>

v3:
 - Various fixes, including unplug

v2:
 - Fix boilerplates of introduced files and leave existing ones alone
-- 
2.1.4

             reply	other threads:[~2018-12-11 10:47 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-11 10:47 Paul Durrant [this message]
2018-12-11 10:47 ` [Qemu-devel] [PATCH v3 00/18] Xen PV backend 'qdevification' Paul Durrant
2018-12-11 10:47 ` [PATCH v3 01/18] xen: re-name XenDevice to XenLegacyDevice Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 02/18] xen: introduce new 'XenBus' and 'XenDevice' object hierarchy Paul Durrant
2018-12-11 10:47 ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 03/18] xen: introduce 'xen-block', 'xen-disk' and 'xen-cdrom' Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 15:16   ` Anthony PERARD
2018-12-11 15:16     ` [Qemu-devel] " Anthony PERARD
2018-12-11 15:40     ` Paul Durrant
2018-12-11 15:40       ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 04/18] xen: create xenstore areas for XenDevice-s Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 15:19   ` Anthony PERARD
2018-12-11 15:19     ` [Qemu-devel] " Anthony PERARD
2018-12-11 10:47 ` [PATCH v3 05/18] xen: add xenstore watcher infrastructure Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 15:21   ` Anthony PERARD
2018-12-11 15:21     ` [Qemu-devel] " Anthony PERARD
2018-12-11 10:47 ` [PATCH v3 06/18] xen: add grant table interface for XenDevice-s Paul Durrant
2018-12-11 10:47 ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [Qemu-devel] [PATCH v3 07/18] xen: add event channel " Paul Durrant
2018-12-11 15:24   ` Anthony PERARD
2018-12-11 15:24     ` [Qemu-devel] " Anthony PERARD
2018-12-11 15:43     ` Paul Durrant
2018-12-11 15:43       ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` Paul Durrant
2018-12-11 10:47 ` [PATCH v3 08/18] xen: duplicate xen_disk.c as basis of dataplane/xen-block.c Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 09/18] xen: remove unnecessary code from dataplane/xen-block.c Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 15:30   ` Anthony PERARD
2018-12-11 15:30     ` [Qemu-devel] [Xen-devel] " Anthony PERARD
2018-12-11 15:38     ` Paul Durrant
2018-12-11 15:38       ` [Qemu-devel] [Xen-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 10/18] xen: add header and build dataplane/xen-block.c Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 11/18] xen: remove 'XenBlkDev' and 'blkdev' names from dataplane/xen-block Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 12/18] xen: remove 'ioreq' struct/varable/field names from dataplane/xen-block.c Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 13/18] xen: purge 'blk' and 'ioreq' from function names in dataplane/xen-block.c Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 14/18] xen: add implementations of xen-block connect and disconnect functions Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 16:17   ` Anthony PERARD
2018-12-11 16:17     ` [Qemu-devel] " Anthony PERARD
2018-12-11 10:47 ` [PATCH v3 15/18] xen: add a mechanism to automatically create XenDevice-s Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 16/18] xen: automatically create XenBlockDevice-s Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 17/18] MAINTAINERS: add myself as a Xen maintainer Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant
2018-12-11 10:47 ` [PATCH v3 18/18] xen: remove the legacy 'xen_disk' backend Paul Durrant
2018-12-11 10:47   ` [Qemu-devel] " Paul Durrant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1544525238-3527-1-git-send-email-paul.durrant@citrix.com \
    --to=paul.durrant@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=ehabkost@redhat.com \
    --cc=groug@kaod.org \
    --cc=jasowang@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=sstabellini@kernel.org \
    --cc=stefanha@redhat.com \
    --cc=tim.smith@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.