From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCHv7 00/16] Linux: FIFO-based event channel ABI Date: Mon, 21 Oct 2013 14:23:01 -0400 Message-ID: <52657105.8070806@oracle.com> References: <1382106206-30366-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1382106206-30366-1-git-send-email-david.vrabel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel Cc: Jan Beulich , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 10/18/2013 10:23 AM, David Vrabel wrote: > This is the complete Linux guest-side implementation of the FIFO-based > event channel ABI described in this design document: With one more comment for 06/16, Reviewed-by: Boris Ostrovsky > > 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). >