Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler annotations
On Wed, Apr 04, 2018 at 03:47:03PM +, Michael Kelley (EOSG) wrote: > > -Original Message- > > From: Greg KH > > Sent: Wednesday, April 4, 2018 1:16 AM > > To: Michael Kelley (EOSG) > > Cc: linux-kernel@vger.kernel.org; de...@linuxdriverproject.org; > > o...@aepfle.de; > > a...@canonical.com; vkuzn...@redhat.com; jasow...@redhat.com; > > leann.ogasaw...@canonical.com; marcelo.ce...@canonical.com; Stephen > > Hemminger > > ; KY Srinivasan > > Subject: Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler > > annotations > > > > On Tue, Apr 03, 2018 at 01:59:08PM -0700, mhkelle...@gmail.com wrote: > > > From: Michael Kelley > > > > > > Add standard interrupt handler annotations to > > > hyperv_vector_handler(). > > > > > > Signed-off-by: Michael Kelley > > > --- > > > 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
RE: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler annotations
> -Original Message- > From: Greg KH > Sent: Wednesday, April 4, 2018 1:16 AM > To: Michael Kelley (EOSG) > Cc: linux-kernel@vger.kernel.org; de...@linuxdriverproject.org; > o...@aepfle.de; > a...@canonical.com; vkuzn...@redhat.com; jasow...@redhat.com; > leann.ogasaw...@canonical.com; marcelo.ce...@canonical.com; Stephen Hemminger > ; KY Srinivasan > Subject: Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler > annotations > > On Tue, Apr 03, 2018 at 01:59:08PM -0700, mhkelle...@gmail.com wrote: > > From: Michael Kelley > > > > Add standard interrupt handler annotations to > > hyperv_vector_handler(). > > > > Signed-off-by: Michael Kelley > > --- > > 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 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 ... Michael > > thanks, > > greg k-h
Re: [PATCH v2 char-misc 1/1] x86/hyperv: Add interrupt handler annotations
On Tue, Apr 03, 2018 at 01:59:08PM -0700, mhkelle...@gmail.com wrote: > From: Michael Kelley > > Add standard interrupt handler annotations to > hyperv_vector_handler(). > > Signed-off-by: Michael Kelley > --- > 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? thanks, greg k-h