[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] return value checking on multicalls
Jan Beulich wrote: > Many places currently don't even check HYPERVISOR_multicall()'s return > value, not to speak of checking the individual status codes. Would it be > acceptable to add an argument to this function to request to either fold > all status values into a global success code, or to force BUG_ON() each > individual status. Or should I rather add a new function with described > behavior? Or are there other suggestions? > In the xen-pvops tree I made a general-purpose hypercall batching mechanism, so that there's only one place which needs to check the multicall return. Its interface is: /* Multicalls */ struct multicall_space { struct multicall_entry *mc; void *args; }; /* Allocate room for a multicall and its args */ struct multicall_space xen_mc_entry(size_t args); /* Flush all pending multicalls */ void xen_mc_flush(void); /* Issue a multicall if we're not in lazy mode */ static inline void xen_mc_issue(void) { if (xen_get_lazy_mode() == PARAVIRT_LAZY_NONE) xen_mc_flush(); } xen_mc_flush() just BUGs if either the multicall hypercall itself fails, or any of the constituent hypercalls. J _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |