> -----Original Message-----
> From: Dexuan Cui
> Sent: Saturday, January 31, 2015 7:38 PM
> To: Vitaly Kuznetsov
> Cc: gre...@linuxfoundation.org; linux-ker...@vger.kernel.org; driverdev-
> de...@linuxdriverproject.org; o...@aepfle.de; a...@canonical.com;
> jasow...@redhat.com; KY Srinivasan; Haiyang Zhang
> Subject: RE: [PATCH 2/3] hv: vmbus_post_msg: retry the hypercall on
> HV_STATUS_INVALID_CONNECTION_ID
> 
> > -----Original Message-----
> > From: Vitaly Kuznetsov [mailto:vkuzn...@redhat.com]
> > Sent: Saturday, January 31, 2015 1:29 AM
> > To: Dexuan Cui
> > Cc: gre...@linuxfoundation.org; linux-ker...@vger.kernel.org;
> > driverdev- de...@linuxdriverproject.org; o...@aepfle.de;
> > a...@canonical.com; jasow...@redhat.com; KY Srinivasan; Haiyang Zhang
> > Subject: Re: [PATCH 2/3] hv: vmbus_post_msg: retry the hypercall on
> > HV_STATUS_INVALID_CONNECTION_ID
> >
> > Dexuan Cui <de...@microsoft.com> writes:
> >
> > >> -----Original Message-----
> > >> From: Vitaly Kuznetsov [mailto:vkuzn...@redhat.com]
> > >> Sent: Thursday, January 29, 2015 21:31 PM
> > >> To: Dexuan Cui
> > >> Cc: gre...@linuxfoundation.org; linux-ker...@vger.kernel.org;
> > >> driverdev- de...@linuxdriverproject.org; o...@aepfle.de;
> > >> a...@canonical.com; jasow...@redhat.com; KY Srinivasan; Haiyang
> > >> Zhang
> > >> Subject: Re: [PATCH 2/3] hv: vmbus_post_msg: retry the hypercall on
> > >> HV_STATUS_INVALID_CONNECTION_ID
> > >>
> > >> Dexuan Cui <de...@microsoft.com> writes:
> > >>
> > >> > I got the hypercall error code on Hyper-V 2008 R2 when keeping
> > >> > running "rmmod hv_netvsc; modprobe hv_netvsc; rmmod hv_utils;
> > >> > modprobe
> > hv_utils"
> > >> > in a Linux guest.
> > >> >
> > >> > Without the patch, the driver can occasionally fail to load.
> > >> >
> > >> > CC: "K. Y. Srinivasan" <k...@microsoft.com>
> > >> > Signed-off-by: Dexuan Cui <de...@microsoft.com>
> > >> > ---
> > >> >  arch/x86/include/uapi/asm/hyperv.h | 1 +
> > >> >  drivers/hv/connection.c            | 9 +++++++++
> > >> >  2 files changed, 10 insertions(+)
> > >> >
> > >> > diff --git a/arch/x86/include/uapi/asm/hyperv.h
> > >> b/arch/x86/include/uapi/asm/hyperv.h
> > >> > index 90c458e..b9daffb 100644
> > >> > --- a/arch/x86/include/uapi/asm/hyperv.h
> > >> > +++ b/arch/x86/include/uapi/asm/hyperv.h
> > >> > @@ -225,6 +225,7 @@
> > >> >  #define HV_STATUS_INVALID_HYPERCALL_CODE      2
> > >> >  #define HV_STATUS_INVALID_HYPERCALL_INPUT     3
> > >> >  #define HV_STATUS_INVALID_ALIGNMENT           4
> > >> > +#define HV_STATUS_INVALID_CONNECTION_ID               18
> > >> >  #define HV_STATUS_INSUFFICIENT_BUFFERS                19
> > >>
> > >> The gap beween 4 and 18 tells me there are other codes here ;-) Are
> > >> they all 'permanent failures'?
> > > It looks we only need to care about these error codes here.
> > >
> > > BTW, you can get all the hypercall error codes in the top level functional
> spec:
> > > http://blogs.msdn.com/b/virtual_pc_guy/archive/2014/02/17/updated-
> > hypervisor-top-level-functional-specification.aspx
> > > For this hypercall (0x005c), see "14.9.7 HvPostMessage".
> >
> > Thanks, interesting!
> >
> > Btw, HV_STATUS_INSUFFICIENT_MEMORY looks suspicious, looks like we
> can
> > hit it as well...
> >
> > I suggest we split all failures here in 2 classes:
> > 1) permanent
> > 2) worth retrying
> >
> > and treat them accordingly (no big changes, just maybe group them
> > within
> > hv_post_message() together as it is the only place where these codes
> > are being used).
> Thanks for the suggestion, Vitaly!
> I'll send out  v2.

Thanks Dexuan.

K. Y
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to