From: Paul Durrant <paul.durrant@citrix.com>
To: xen-devel@lists.xen.org
Subject: [PATCH v7 0/9] Support for running secondary emulators
Date: Fri, 9 May 2014 09:39:55 +0100 [thread overview]
Message-ID: <1399624804-5109-1-git-send-email-paul.durrant@citrix.com> (raw)
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 'savannah7'
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 v5. The modifications are now broken
down as follows:
Patch #1 is a pre-series tidy-up. No semantic change.
Patch #2 moves some code around to centralize use of the ioreq_t data
structure.
Patch #3 introduces the new hvm_ioreq_server structure.
Patch #4 defers creation of the ioreq server until something actually
reads one of the HVM parameters concerned with emulation.
Patch #5 adds an implementation of asprintf() for Xen.
Patch #6 adds an extra function, rangeset_limit() to set a limit on the
number of ranges in a set.
Patch #7 makes the single ioreq server of previous patches into the
default ioreq server and introduces an API for creating secondary servers.
Patch #8 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 #9 adds makes handling buffered ioreqs optional for secondary servers.
This saves a page of memory per server.
The hotplug controller patch of previous versions of this series has
been dropped to give me more time for testing, and possible re-factoring.
This means that, for now, bus rescans will need to be invoked from within
the guest to notice devices provided by secondary emulators coming and going.
The demo emulator can simply be invoked from a shell. 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
v6:
- Bugfix patch dropped as it has already been taken
- Addressed various comments from Jan Beulich and Ian Campbell
- Split out the addition of asprintf() into a separate patch
- Dropped hotplug controller patch for now, to allow more time for testing
- Split out rangeset patch and make range limit optional parameter
- Added missing XSM checks
v7:
- Addressed more comments from Jan Beulich
- Backed out argument change to rangset_new() in favour of new
rangeset_limit() function
next reply other threads:[~2014-05-09 8:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-09 8:39 Paul Durrant [this message]
2014-05-09 8:39 ` [PATCH v7 1/9] ioreq-server: pre-series tidy up Paul Durrant
2014-05-09 8:39 ` [PATCH v7 2/9] ioreq-server: centralize access to ioreq structures Paul Durrant
2014-05-09 8:39 ` [PATCH v7 3/9] ioreq-server: create basic ioreq server abstraction Paul Durrant
2014-05-09 13:09 ` Jan Beulich
2014-05-09 15:22 ` Paul Durrant
2014-05-09 8:39 ` [PATCH v7 4/9] ioreq-server: on-demand creation of ioreq server Paul Durrant
2014-05-09 13:12 ` Jan Beulich
2014-05-09 15:22 ` Paul Durrant
2014-05-09 8:40 ` [PATCH v7 5/9] Add an implentation of asprintf() for xen Paul Durrant
2014-05-09 13:06 ` Jan Beulich
2014-05-09 13:08 ` Paul Durrant
2014-05-09 13:15 ` Jan Beulich
2014-05-09 13:19 ` Paul Durrant
2014-05-09 14:15 ` Paul Durrant
2014-05-09 15:47 ` Jan Beulich
2014-05-09 8:40 ` [PATCH v7 6/9] Add the facility to limit ranges per rangeset Paul Durrant
2014-05-09 13:22 ` Jan Beulich
2014-05-09 15:23 ` Paul Durrant
2014-05-09 8:40 ` [PATCH v7 7/9] ioreq-server: add support for multiple servers Paul Durrant
2014-05-09 9:34 ` Ian Campbell
2014-05-09 9:38 ` Ian Campbell
2014-05-09 9:50 ` Paul Durrant
2014-05-09 13:25 ` Ian Campbell
2014-05-09 13:29 ` Paul Durrant
2014-05-09 13:38 ` Jan Beulich
2014-05-09 13:40 ` Paul Durrant
2014-05-12 11:26 ` Jan Beulich
2014-05-12 12:19 ` Paul Durrant
2014-05-19 12:55 ` Paul Durrant
2014-05-19 13:12 ` Jan Beulich
2014-05-19 13:15 ` Paul Durrant
2014-05-09 8:40 ` [PATCH v7 8/9] ioreq-server: remove p2m entries when server is enabled Paul Durrant
2014-05-09 9:36 ` Ian Campbell
2014-05-12 11:34 ` Jan Beulich
2014-05-12 12:21 ` Paul Durrant
2014-05-09 8:40 ` [PATCH v7 9/9] ioreq-server: make buffered ioreq handling optional Paul Durrant
2014-05-12 11:36 ` Jan Beulich
2014-05-12 12:20 ` 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=1399624804-5109-1-git-send-email-paul.durrant@citrix.com \
--to=paul.durrant@citrix.com \
--cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).