All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/9] Support for running secondary emulators
@ 2014-05-01 12:08 Paul Durrant
  2014-05-01 12:08 ` [PATCH v5 1/9] hvm_set_ioreq_page() releases wrong page in error path Paul Durrant
                   ` (9 more replies)
  0 siblings, 10 replies; 57+ messages in thread
From: Paul Durrant @ 2014-05-01 12:08 UTC (permalink / raw)
  To: xen-devel

This patch series adds the ioreq server interface which I mentioned in
my talk at the Xen developer summit in Edinburgh at the end of last year.
The code is based on work originally done by Julien Grall but has been
re-written to allow existing versions of QEMU to work unmodified.

The code is available in my xen.git [1] repo on xenbits, under the 'savannah5'
branch, and I have also written a demo emulator to test the code, which can
be found in my demu.git [2] repo.


The series has been re-worked since v4. The modifications are now broken
down as follows:

Patch #1 is a bug-fix in code touched later on in the series.

Patch #2 is a pre-series tidy-up. No semantic change.

Patch #3 moves some code around to centralize use of the ioreq_t data
structure.

Patch #4 introduces the new hvm_ioreq_server structure.

Patch #5 defers creation of the ioreq server until something actually
reads one of the HVM parameters concerned with emulation.

Patch #6 makes the single ioreq server of previous patches into the
default ioreq server and introduces an API for creating secondary servers.

Patch #7 adds an enable/disable operation to the API for secondary servers
which makes sure that they cannot be active whilst their shared pages are
present in the guest's P2M.

Patch #8 adds makes handling bufferd ioreqs optional for secondary servers.
This saves a page of memory per server.

Patch #9 pulls the PCI hotplug controller emulation into Xen. This is
necessary to allow a secondary emulator to hotplug a PCI device into the VM.
The code implements the controller in the same way as upstream QEMU and thus
the variant of the DSDT ASL used for upstream QEMU is retained.


The demo emulator can simply be invoked from a shell and will hotplug its
device onto the PCI bus (and remove it again when it's killed). The emulated
device is not an awful lot of use at this stage - it appears as a SCSI
controller with one IO BAR and one MEM BAR and has no intrinsic
functionality... but then it is only supposed to be demo :-)

  Paul

[1] http://xenbits.xen.org/gitweb/?p=people/pauldu/xen.git
[2] http://xenbits.xen.org/gitweb/?p=people/pauldu/demu.git

v2:
 - First non-RFC posting

v3:
 - Addressed comments from Jan Beulich

v4:
 - Addressed comments from Ian Campbell and George Dunlap
 - Series heavily re-worked, 2 patches added

v5:
 - One more patch added to separate out a bug-fix, as requested by
   Jan Beulich
 - Switched to using rangesets as suggested by Jan Beulich
 - Changed domain restore path as requested by Ian Campbell
 - Added documentation for new hypercalls and libxenctrl API as requested
   by Ian Campbell
 - Added handling of multi-byte GPE I/O as suggested by Jan Beulich

^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2014-05-07 14:45 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-01 12:08 [PATCH v5 0/9] Support for running secondary emulators Paul Durrant
2014-05-01 12:08 ` [PATCH v5 1/9] hvm_set_ioreq_page() releases wrong page in error path Paul Durrant
2014-05-01 12:48   ` Andrew Cooper
2014-05-01 12:08 ` [PATCH v5 2/9] ioreq-server: pre-series tidy up Paul Durrant
2014-05-06 12:25   ` Jan Beulich
2014-05-06 12:37     ` Paul Durrant
2014-05-01 12:08 ` [PATCH v5 3/9] ioreq-server: centralize access to ioreq structures Paul Durrant
2014-05-06 12:35   ` Jan Beulich
2014-05-06 12:41     ` Paul Durrant
2014-05-06 14:13       ` Paul Durrant
2014-05-06 14:21         ` Jan Beulich
2014-05-06 14:32           ` Paul Durrant
2014-05-06 14:39             ` Jan Beulich
2014-05-01 12:08 ` [PATCH v5 4/9] ioreq-server: create basic ioreq server abstraction Paul Durrant
2014-05-06 12:55   ` Jan Beulich
2014-05-06 13:12     ` Paul Durrant
2014-05-06 13:24       ` Jan Beulich
2014-05-06 13:40         ` Paul Durrant
2014-05-06 13:50           ` Jan Beulich
2014-05-06 13:44         ` Paul Durrant
2014-05-06 13:51           ` Jan Beulich
2014-05-06 13:53             ` Paul Durrant
2014-05-01 12:08 ` [PATCH v5 5/9] ioreq-server: on-demand creation of ioreq server Paul Durrant
2014-05-06 14:18   ` Jan Beulich
2014-05-06 14:24     ` Paul Durrant
2014-05-06 15:07       ` Jan Beulich
2014-05-01 12:08 ` [PATCH v5 6/9] ioreq-server: add support for multiple servers Paul Durrant
2014-05-06 10:46   ` Ian Campbell
2014-05-06 13:28     ` Paul Durrant
2014-05-07  9:44       ` Ian Campbell
2014-05-07  9:48         ` Paul Durrant
2014-05-07 11:13   ` Jan Beulich
2014-05-07 12:06     ` Paul Durrant
2014-05-07 12:23       ` Jan Beulich
2014-05-07 12:25         ` Paul Durrant
2014-05-07 12:34           ` Jan Beulich
2014-05-07 12:37             ` Paul Durrant
2014-05-07 14:07               ` Jan Beulich
2014-05-07 14:12                 ` Paul Durrant
2014-05-07 14:22                   ` Jan Beulich
2014-05-01 12:08 ` [PATCH v5 7/9] ioreq-server: remove p2m entries when server is enabled Paul Durrant
2014-05-06 10:48   ` Ian Campbell
2014-05-06 16:57     ` Paul Durrant
2014-05-07 12:09   ` Jan Beulich
2014-05-01 12:08 ` [PATCH v5 8/9] ioreq-server: make buffered ioreq handling optional Paul Durrant
2014-05-06 10:52   ` Ian Campbell
2014-05-06 13:17     ` Paul Durrant
2014-05-07 12:13   ` Jan Beulich
2014-05-01 12:08 ` [PATCH v5 9/9] ioreq-server: bring the PCI hotplug controller implementation into Xen Paul Durrant
2014-05-06 11:24   ` Ian Campbell
2014-05-06 13:02     ` Paul Durrant
2014-05-06 13:24       ` Ian Campbell
2014-05-06 13:35         ` Paul Durrant
2014-05-07  9:48           ` Ian Campbell
2014-05-07  9:51             ` Paul Durrant
2014-05-07 14:41 ` [PATCH v5 0/9] Support for running secondary emulators Jan Beulich
2014-05-07 14:45   ` Paul Durrant

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.