[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/hvm: If we fail to fetch an HVM parameter print out which flag it is.
On Fri, 2012-11-02 at 16:37 +0000, Konrad Rzeszutek Wilk wrote: > Like this? Yup. Although I'm not sure if it really needs to be inlined. I guess it's not an especially performance sensitve path though. > > From 66705b0ff8808d86c12fcb3815d849a848b5409b Mon Sep 17 00:00:00 2001 > From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Date: Fri, 19 Oct 2012 15:01:46 -0400 > Subject: [PATCH] xen/hvm: If we fail to fetch an HVM parameter print out > which flag it is. > > Makes it easier to troubleshoot in the field. > > [v1: Use macro per Ian's suggestion] > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > --- > include/xen/hvm.h | 34 ++++++++++++++++++++++++++++++++-- > 1 file changed, 32 insertions(+), 2 deletions(-) > > diff --git a/include/xen/hvm.h b/include/xen/hvm.h > index b193fa2..13e43e4 100644 > --- a/include/xen/hvm.h > +++ b/include/xen/hvm.h > @@ -5,6 +5,36 @@ > #include <xen/interface/hvm/params.h> > #include <asm/xen/hypercall.h> > > +static const char *param_name(int op) > +{ > +#define PARAM(x) [HVM_PARAM_##x] = #x > + static const char *const names[] = { > + PARAM(CALLBACK_IRQ), > + PARAM(STORE_PFN), > + PARAM(STORE_EVTCHN), > + PARAM(PAE_ENABLED), > + PARAM(IOREQ_PFN), > + PARAM(BUFIOREQ_PFN), > + PARAM(TIMER_MODE), > + PARAM(HPET_ENABLED), > + PARAM(IDENT_PT), > + PARAM(DM_DOMAIN), > + PARAM(ACPI_S_STATE), > + PARAM(VM86_TSS), > + PARAM(VPT_ALIGN), > + PARAM(CONSOLE_PFN), > + PARAM(CONSOLE_EVTCHN), > + }; > +#undef PARAM > + > + if (op >= ARRAY_SIZE(names)) > + return "unknown"; > + > + if (!names[op]) > + return "reserved"; > + > + return names[op]; > +} > static inline int hvm_get_parameter(int idx, uint64_t *value) > { > struct xen_hvm_param xhv; > @@ -14,8 +44,8 @@ static inline int hvm_get_parameter(int idx, uint64_t > *value) > xhv.index = idx; > r = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv); > if (r < 0) { > - printk(KERN_ERR "Cannot get hvm parameter %d: %d!\n", > - idx, r); > + printk(KERN_ERR "Cannot get hvm parameter %s (%d): %d!\n", > + param_name(idx), idx, r); > return r; > } > *value = xhv.value; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |