[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCHv4 0/11] Xen: FIFO-based event channel ABI
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. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |