[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V3 07/22] Add evtchn_extended in struct domain
On 27/02/13 14:34, Wei Liu wrote: > This field is a bitmap of currently in use extended event channel ABI, which > can have 0 (no extended event channel in use) 1 bit set. It is manipulated by > hypervisor only, so if anything goes wrong it is a bug. > > The default event channel ABI is EVTCHN_EXTENDED_NONE, which means no extended > event channel is used. [...] > --- a/xen/include/xen/event.h > +++ b/xen/include/xen/event.h > @@ -14,6 +14,7 @@ > #include <xen/softirq.h> > #include <asm/bitops.h> > #include <asm/event.h> > +#include <public/event_channel.h> > > #ifndef CONFIG_COMPAT > #define BITS_PER_EVTCHN_WORD(d) BITS_PER_LONG > @@ -22,7 +23,16 @@ > #endif > static inline unsigned int max_evtchns(struct domain *d) > { > - return BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); > + unsigned int ret = 0; > + switch ( d->evtchn_extended ) > + { > + case EVTCHN_EXTENDED_NONE: > + ret = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); > + break; > + default: > + BUG(); > + } BUG'ing in every switch that uses d->evtchn_extended doesn't seem useful and may add extra overhead in hot paths. Perhaps an ASSERT() but this this field is written in such a limited set of places this doesn't seem useful. David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |