Re: [PATCH 1/1] X86/Hyper-V:: Fix the circular dependency in IPI enlightenment.

Ingo Molnar
2018-07-05T22:23:11Z

* KY Srinivasan <kys@microsoft.com> wrote:

>
>
> > -----Original Message-----
> > From: Ingo Molnar <mingo.kernel.org@gmail.com> On Behalf Of Ingo Molnar
> > Sent: Thursday, July 5, 2018 8:38 AM
> > To: KY Srinivasan <kys@microsoft.com>
> > Cc: x86@kernel.org; gregkh@linuxfoundation.org; linux-
> > kernel@vger.kernel.org; devel@linuxdriverproject.org; olaf@aepfle.de;
> > apw@canonical.com; jasowang@redhat.com; tglx@linutronix.de;
> > hpa@zytor.com; Stephen Hemminger <sthemmin@microsoft.com>; Michael
> > Kelley (EOSG) <Michael.H.Kelley@microsoft.com>; vkuznets@redhat.com
> > Subject: Re: [PATCH 1/1] X86/Hyper-V:: Fix the circular dependency in IPI
> > enlightenment.
> >
> >
> > * KY Srinivasan <kys@microsoft.com> wrote:
> >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Ingo Molnar <mingo.kernel.org@gmail.com> On Behalf Of Ingo
> > Molnar
> > > > Sent: Wednesday, July 4, 2018 9:11 AM
> > > > To: KY Srinivasan <kys@microsoft.com>
> > > > Cc: x86@kernel.org; gregkh@linuxfoundation.org; linux-
> > > > kernel@vger.kernel.org; devel@linuxdriverproject.org; olaf@aepfle.de;
> > > > apw@canonical.com; jasowang@redhat.com; tglx@linutronix.de;
> > > > hpa@zytor.com; Stephen Hemminger <sthemmin@microsoft.com>;
> > Michael
> > > > Kelley (EOSG) <Michael.H.Kelley@microsoft.com>;
> > vkuznets@redhat.com
> > > > Subject: Re: [PATCH 1/1] X86/Hyper-V:: Fix the circular dependency in IPI
> > > > enlightenment.
> > > >
> > > >
> > > > * kys@linuxonhyperv.com <kys@linuxonhyperv.com> wrote:
> > > >
> > > > > From: "K. Y. Srinivasan" <kys@microsoft.com>
> > > > >
> > > > > The IPI hypercalls depend on being able to map the Linux notion of CPU
> > ID
> > > > > to the hypervisor's notion of the CPU ID. The array hv_vp_index[]
> > provides
> > > > > this mapping. Code for populating this array depends on the IPI
> > > > functionality.
> > > > > Break this circular dependency.
> > > > >
> > > > > Fixes: 68bb7bfb7985 ("X86/Hyper-V: Enable IPI enlightenments")
> > > > >
> > > > > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > > > > Tested-by: Michael Kelley <mikelley@microsoft.com>
> > > > > ---
> > > > > arch/x86/hyperv/hv_apic.c | 5 +++++
> > > > > arch/x86/hyperv/hv_init.c | 5 ++++-
> > > > > arch/x86/include/asm/mshyperv.h | 2 ++
> > > > > 3 files changed, 11 insertions(+), 1 deletion(-)
> > > >
> > > > Ugh, this patch wasn't even build tested, on 64-bit allyes/allmodconfig:
> > > >
> > > > arch/x86/hyperv/hv_apic.c: In function ‘__send_ipi_mask’:
> > > > arch/x86/hyperv/hv_apic.c:171:4: error: label ‘ipi_mask_done’ used but
> > not
> > > > defined
> > > > scripts/Makefile.build:317: recipe for target 'arch/x86/hyperv/hv_apic.o'
> > > > failed
> > > > make[2]: *** [arch/x86/hyperv/hv_apic.o] Error 1
> > >
> > > Sorry Ingo. I had a clean build on the linux-next tree (tag: next-20180702)
> > that
> > > I used to base this patch. What was the tree you applied the patch to?
> >
> > If you look at the error message, it won't build against *any* tree, because
> > there's no 'ipi_mask_done' label either in the kernel source, or introduced
> > by the patch.
> >
> > So whatever tree you used it on, if you build arch/x86/hyperv/hv_apic.o it
> > should
> > be broken.
>
> Ingo,
>
> I am confused. The label ipi_mask_done was introduced in this patch
> (the patch under question fixes a circular dependency in this patch):
>
> commit 68bb7bfb7985df2bd15c2dc975cb68b7a901488a
> Author: K. Y. Srinivasan <kys@microsoft.com>
> Date: Wed May 16 14:53:31 2018 -0700
>
> X86/Hyper-V: Enable IPI enlightenments
>
> Hyper-V supports hypercalls to implement IPI; use them.
>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Reviewed-by: Michael Kelley <mikelley@microsoft.com>
>
> This patch was committed by Thomas some weeks ago and is in linux-next.
> This patch is also in 4.18-rc3.

And then that name was changed to a different label in:

4bd06060762b: x86/hyper-v: Use cheaper HVCALL_SEND_IPI hypercall when possible

So maybe you were testing on an older kernel. Could you try the latest -tip?

Thanks,

Ingo