Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler annotations

From: Greg KH
Date: Wed Apr 04 2018 - 11:57:12 EST


On Wed, Apr 04, 2018 at 03:47:03PM +0000, Michael Kelley (EOSG) wrote:
> > -----Original Message-----
> > From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
> > Sent: Wednesday, April 4, 2018 1:16 AM
> > To: Michael Kelley (EOSG) <Michael.H.Kelley@xxxxxxxxxxxxx>
> > Cc: linux-kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx;
> > apw@xxxxxxxxxxxxx; vkuznets@xxxxxxxxxx; jasowang@xxxxxxxxxx;
> > leann.ogasawara@xxxxxxxxxxxxx; marcelo.cerri@xxxxxxxxxxxxx; Stephen Hemminger
> > <sthemmin@xxxxxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>
> > Subject: Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler annotations
> >
> > On Tue, Apr 03, 2018 at 01:59:08PM -0700, mhkelley58@xxxxxxxxx wrote:
> > > From: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> > >
> > > Add standard interrupt handler annotations to
> > > hyperv_vector_handler().
> > >
> > > Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> > > ---
> > > Changes in v2:
> > > * Fixed From: line
> > > ---
> > > arch/x86/kernel/cpu/mshyperv.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> > > index 4488cf0..20f6849 100644
> > > --- a/arch/x86/kernel/cpu/mshyperv.c
> > > +++ b/arch/x86/kernel/cpu/mshyperv.c
> > > @@ -41,7 +41,7 @@ static void (*hv_stimer0_handler)(void);
> > > static void (*hv_kexec_handler)(void);
> > > static void (*hv_crash_handler)(struct pt_regs *regs);
> > >
> > > -void hyperv_vector_handler(struct pt_regs *regs)
> > > +__visible void __irq_entry hyperv_vector_handler(struct pt_regs *regs)
> >
> > What bug does this solve? What is wrong with the existing markings?
> > What does __visible and __irq_entry give us that we don't already have
> > and we need?
> >
> > Are you really using LTO that requires this marking to prevent the code
> > from being removed?
>
> Thomas Gleixner commented on Vitaly Kuznetsov's Hyper-V reenlightenment patch
> that the interrupt handler should have these annotations: see
> https://lkml.org/lkml/2018/1/14/145

Ok, then someone needs to put a "Suggested-by:" or "Requested-by:" or
something like that tag here, right?

> I put the same annotations on the interrupt handler for stimer0 Direct Mode,
> So this change makes the hyperv_vector_handler() consistent with
> hv_stimer0_vector_handler() in the same source file. It does not fix any
> immediate bug -- it's for consistency and alignment with what is apparently
> standard practice.
>
> Not sure what LTO is ...

That's what the __visable marking fixes! Please go at least _read_ the
definition of the marking you are adding to a function before doing it.
Otherwise this is just cargo-cult-coding :(

thanks,

greg k-h