| To: | Jan Beulich <jbeulich@xxxxxxxxxx> |
|---|---|
| Subject: | Re: [Xen-devel] return value checking on multicalls |
| From: | Jeremy Fitzhardinge <jeremy@xxxxxxxx> |
| Date: | 2007年3月14日 09:45:12 -0700 |
| Cc: | xen-devel@xxxxxxxxxxxxxxxxxxx |
| Delivery-date: | 2007年3月14日 09:44:23 -0700 |
| Envelope-to: | www-data@xxxxxxxxxxxxxxxxxx |
| In-reply-to: | <45F828EB.76E4.0078.0@xxxxxxxxxx> |
| List-help: | <mailto:xen-devel-request@lists.xensource.com?subject=help> |
| List-id: | Xen developer discussion <xen-devel.lists.xensource.com> |
| List-post: | <mailto:xen-devel@lists.xensource.com> |
| List-subscribe: | <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
| List-unsubscribe: | <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
| References: | <45F828EB.76E4.0078.0@xxxxxxxxxx> |
| Sender: | xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
| User-agent: | Thunderbird 1.5.0.10 (X11/20070302) |
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
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [Xen-devel] [PATCH] 32on64 oversight in update_va_mapping , Jan Beulich |
|---|---|
| Next by Date: | Re: [Xen-devel] Cs/ 14346 breaks 64bit hv , Tim Deegan |
| Previous by Thread: | Re: [Xen-devel] return value checking on multicalls , Keir Fraser |
| Next by Thread: | Re: [Xen-devel] return value checking on multicalls , Jan Beulich |
| Indexes: | [Date] [Thread] [Top] [All Lists] |