[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCHv7 00/16] Linux: FIFO-based event channel ABI



This is the complete Linux guest-side implementation of the FIFO-based
event channel ABI described in this design document:

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

The Xen implementation is now available in xen-unstable.

Note that __startup_pirq() was never ideal as failure when binding a
PIRQ to an event channel cannot be propagated to the calling driver
since the irq_startup callback cannot return an error.  This series
adds another (very unlikely) failure point to __startup_pirq().

I have a half-bakedpatch series to refactor when PIRQs are setup and
torn down but this won't be ready for a while and I do not think this
is a prerequisite for applying the FIFO-based ABI series.

Patch 1 is a obvious refactoring of common code.

Patch 2-6 prepare for supporting multiple ABIs.

Patch 7 adds the low-level evtchn_ops hooks.

Patch 8-9 add an additional hook for ABI-specific per-port setup
(used for expanding the event array as more event are bound).

Patch 10 allows many more event channels to be supported by altering
how the event channel to irq map is allocated.  Note that other
factors limit the number of supported IRQs (IRQs is 8192 + 64 *
NR_CPUS).

Patch 11 is some trival refactoring.

Patch 12 removes a limit on the number of event channels supported by
the xen-evtchn driver.

Patch 13 adds the hypervisor ABI.

Patches 14-15 Set the priority of VIRQ_TIMER events to the highest.

Patch 16 adds the FIFO-based ABI implementation.

Changes in v7:

- Add xen.fifo_events command line option (defaults to true).
- Use xen_evtchn_nr_channels() in xen_evtchn driver.
- Drop unnecessary test in evtchn_fifo_unmask()
- Refactor irq_info setup/cleanup a bit.

Changes in v6:

- nlevel -> 2l to match naming in Xen.

Changes in v5 (v4 not posted):

- Set priority of VIRQ_TIMER.
- Remove NR_EVENT_CHANNELS limit from xen-evtchn driver.
- Licence drivers/xen/events/fifo.c under a dual MIT/GPLv2.

Changes in v3:

- Support suspend/resume by reinitializing the control blocks on resume.
- Only init control block if one does not exist (should fix CPU
  hotplug).


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.