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

Re: [Xen-devel] [RFC PATCH V2 3/8] xen: generalized event channel operations



>>> On 21.01.13 at 15:58, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
> @@ -51,6 +51,27 @@
>  #include <xen/interface/hvm/hvm_op.h>
>  #include <xen/interface/hvm/params.h>
>  
> +/* N-level event channel, starting from 2 */
> +unsigned int evtchn_level = 2;
> +EXPORT_SYMBOL_GPL(evtchn_level);
> +unsigned int nr_event_channels;
> +EXPORT_SYMBOL_GPL(nr_event_channels);
> +
> +struct evtchn_ops {
> +     unsigned long (*active_evtchns)   (unsigned int cpu,
> +                                        struct shared_info *sh,
> +                                        unsigned int idx);
> +     void          (*clear_evtchn)     (int port);
> +     void          (*set_evtchn)       (int port);
> +     int           (*test_evtchn)      (int port);
> +     void          (*mask_evtchn)      (int port);
> +     void          (*unmask_evtchn)    (int port);
> +     int           (*test_and_set_mask)(int port);
> +     void          (*do_upcall)        (void);
> +     irqreturn_t   (*debug_interrupt)  (int irq, void *dev_id);
> +};
> +static struct evtchn_ops *eops;

static const struct evtchn_ops *__read_mostly eops;

And of course neither here nor in the hypervisor side patches
I'm convinced the added level of indirection (and the necessarily
resulting amount of code duplication) is really the best approach
(afaict some of the affected code paths can be hot for interrupt
intensive workloads), also with the consideration of what that
would mean if further levels got added.

Jan


_______________________________________________
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®.