xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv5 0/11] Xen: FIFO-based event channel ABI
@ 2013-10-02 16:35 David Vrabel
  2013-10-02 16:35 ` [PATCH 01/11] debug: remove some event channel info from the 'i' and 'q' debug keys David Vrabel
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: David Vrabel @ 2013-10-02 16:35 UTC (permalink / raw)
  To: xen-devel; +Cc: Keir Fraser, David Vrabel, Jan Beulich

  http://xenbits.xen.org/people/dvrabel/event-channels-F.pdf

The v5 version of the Linux patch series will be posted shortly and
can be found in the orochi-v5 branch of:

  git://xenbits.xen.org/people/dvrabel/linux.git

Patch 1-4 do some preparatory work for supporting alternate ABIs.

Patch 5 expands the number of evtchn objects a domain may have by
changing how they are allocated.

Patch 6 adds the public ABI.

Patch 7 adds the EVTCHNOP_set_priority implementation.  This will
return -ENOSYS for ABIs that do not support priority.

Patch 8* adds the FIFO-based ABI implementation.

Patch 9*-10 adds the DOMCTL_set_max_evtchn implementation and adds a
function to libxc. This will also work with the 2-level ABI.

Patch 11* add the max_event_channels configuration option to xl and
libxl bits needed for this.

* Reviewed-by pending.

Changes in v5:

- xl config option renamed to 'max_event_channels'.
- Default set by libxl is 1023.
- Fix flask (I think).
- Use domain_page_map_to_mfn() when unmapping guest pages.
- Coding style (unsigned -> unsigned int throughout, x == NULL -> !x).

Changes in v4:

- Updates for Draft F of the design.
- DOMCTL_set_max_evtchn replaces EVTCHNOP_set_limit.
- Hypervisor defaults to unlimited event channels for for DomU.
- Optimized memory allocation for struct evtchn's when fewer than 128
  are required (see patch 5).
- Added event_channels option to the xl domain configuration file and
  plumbed this through libxl_build_info.  Defaults to 127.

Changes in v3:

- Updates for Draft E of the design.
- Store priority in struct evtchn.
- Implement set_priority with generic code + hook.
- Implement set_limit and add libxc function.
- Add ABI specific output to 'e' debug key.

Changes in v2:

- Updates for Draft D of the design.
- 130,000+ event channels are now supported.
- event_port.c -> event_2l.c and only contains 2l functions.
- Addresses various review comments
  - int -> unsigned in lots of places
  - use write_atomic() to set HEAD
  - removed MAX_EVTCHNS
  - evtchn_ops are const.
- Pack struct evtchns better to reduce memory needed.

^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCHv4 0/11] Xen: FIFO-based event channel ABI
@ 2013-09-27 10:55 David Vrabel
  2013-09-27 10:55 ` [PATCH 11/11] libxl, xl: add event_channels option to xl configuration file David Vrabel
  0 siblings, 1 reply; 24+ messages in thread
From: David Vrabel @ 2013-09-27 10:55 UTC (permalink / raw)
  To: xen-devel; +Cc: Keir Fraser, David Vrabel, Jan Beulich

This is a complete implementation of the hypervisor and xl toolstack
parts of the FIFO-based event channel ABI described in this design
document:

http://xenbits.xen.org/people/dvrabel/event-channels-F.pdf

Changes in draft F are:

- READY field in the control block is now 32-bits (so guests only need
  to support atomic bit ops on 32-bit words).  This is only a
  documentation change as the implementation already used a uint32_t.

- DOMCTL_set_max_evtchn replaces EVTCHNOP_set_limit.

- DomUs default to unlimited number of event channels requiring
  the toolstack to set a limit.

The toolstack defaults to limiting guests to 127 event channels if the
event_channels option is omitted.  This means the minimum amount of
both Xen heap and global mapping space is used regardless of which ABI
is used.  If this is considered too restrictive a limit, 1023 would be
another sensible default (limits the guest to a single event array
page but 5 xenheap pages for the struct evtchns).

An updated version of the Linux patch series is not quite ready yet.
There is one remaining issue but fixing this will not require any
changes to the hypervisor ABI or implementation.  The remaining issue
requires preallocating space in the evtchn-to-irq map as this cannot
be expanded in pirq_startup() (since this function cannot return a
failure).

The latest Linux changes can be found in the orochi-v4w branch of:

  git://xenbits.xen.org/people/dvrabel/linux.git

Patch 1-4 do some preparatory work for supporting alternate ABIs.

Patch 5 expands the number of evtchn objects a domain may have by
changing how they are allocated.

Patch 6 adds the public ABI.

Patch 7 adds the EVTCHNOP_set_priority implementation.  This will
return -ENOSYS for ABIs that do not support priority.

Patch 8 adds the FIFO-based ABI implementation.

Patch 9-10 adds the DOMCTL_set_max_evtchn implementation and adds a
function to libxc. This will also work with the 2-level ABI.

Patch 11 add the event_channels configuration option to xl and libxl
bits needed for this.

Changes in v4:

- Updates for Draft F of the design.
- DOMCTL_set_max_evtchn replaces EVTCHNOP_set_limit.
- Hypervisor defaults to unlimited event channels for for DomU.
- Optimized memory allocation for struct evtchn's when fewer than 128
  are required (see patch 5).
- Added event_channels option to the xl domain configuration file and
  plumbed this through libxl_build_info.  Defaults to 127.

Changes in v3:

- Updates for Draft E of the design.
- Store priority in struct evtchn.
- Implement set_priority with generic code + hook.
- Implement set_limit and add libxc function.
- Add ABI specific output to 'e' debug key.

Changes in v2:

- Updates for Draft D of the design.
- 130,000+ event channels are now supported.
- event_port.c -> event_2l.c and only contains 2l functions.
- Addresses various review comments
  - int -> unsigned in lots of places
  - use write_atomic() to set HEAD
  - removed MAX_EVTCHNS
  - evtchn_ops are const.
- Pack struct evtchns better to reduce memory needed.

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

end of thread, other threads:[~2013-10-14 16:58 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-02 16:35 [PATCHv5 0/11] Xen: FIFO-based event channel ABI David Vrabel
2013-10-02 16:35 ` [PATCH 01/11] debug: remove some event channel info from the 'i' and 'q' debug keys David Vrabel
2013-10-02 16:35 ` [PATCH 02/11] evtchn: refactor low-level event channel port ops David Vrabel
2013-10-02 16:35 ` [PATCH 03/11] evtchn: print ABI specific state with the 'e' debug key David Vrabel
2013-10-02 16:35 ` [PATCH 04/11] evtchn: use a per-domain variable for the max number of event channels David Vrabel
2013-10-02 16:35 ` [PATCH 05/11] evtchn: allow many more evtchn objects to be allocated per domain David Vrabel
2013-10-02 16:35 ` [PATCH 06/11] evtchn: add FIFO-based event channel ABI David Vrabel
2013-10-02 16:35 ` [PATCH 07/11] evtchn: implement EVTCHNOP_set_priority and add the set_priority hook David Vrabel
2013-10-02 16:35 ` [PATCH 08/11] evtchn: add FIFO-based event channel hypercalls and port ops David Vrabel
2013-10-04 16:00   ` Jan Beulich
2013-10-02 16:35 ` [PATCH 09/11] xen: Add DOMCTL to limit the number of event channels a domain may use David Vrabel
2013-10-02 17:06   ` David Vrabel
2013-10-04 11:56     ` David Vrabel
2013-10-04 16:02       ` Jan Beulich
2013-10-07 16:00       ` Daniel De Graaf
2013-10-02 16:35 ` [PATCH 10/11] libxc: add xc_domain_set_max_evtchn() David Vrabel
2013-10-02 16:36 ` [PATCH 11/11] libxl, xl: add event_channels option to xl configuration file David Vrabel
2013-10-03  8:29   ` Ian Campbell
2013-10-14 14:31   ` Ian Jackson
2013-10-14 16:43     ` David Vrabel
2013-10-14 16:58       ` Ian Jackson
  -- strict thread matches above, loose matches on Subject: below --
2013-09-27 10:55 [PATCHv4 0/11] Xen: FIFO-based event channel ABI David Vrabel
2013-09-27 10:55 ` [PATCH 11/11] libxl, xl: add event_channels option to xl configuration file David Vrabel
2013-10-01 12:36   ` Ian Campbell
2013-10-01 12:53     ` David Vrabel

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).