Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1512899 > unrolled thread

Re: [RFC PATCH 0/4] Clean up watchdog handlers

Started byDon Zickus <dzickus@redhat.com>
First post2016-10-31 22:10 +0100
Last post2016-11-01 16:10 +0100
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [RFC PATCH 0/4] Clean up watchdog handlers Don Zickus <dzickus@redhat.com> - 2016-10-31 22:10 +0100
    Re: [RFC PATCH 0/4] Clean up watchdog handlers Babu Moger <babu.moger@oracle.com> - 2016-10-31 22:30 +0100
    Re: [RFC PATCH 0/4] Clean up watchdog handlers Babu Moger <babu.moger@oracle.com> - 2016-10-31 22:40 +0100
      Re: [RFC PATCH 0/4] Clean up watchdog handlers Don Zickus <dzickus@redhat.com> - 2016-11-01 14:30 +0100
        Re: [RFC PATCH 0/4] Clean up watchdog handlers Babu Moger <babu.moger@oracle.com> - 2016-11-01 16:10 +0100

#1512899 — Re: [RFC PATCH 0/4] Clean up watchdog handlers

FromDon Zickus <dzickus@redhat.com>
Date2016-10-31 22:10 +0100
SubjectRe: [RFC PATCH 0/4] Clean up watchdog handlers
Message-ID<sys09-7Ib-3@gated-at.bofh.it>
On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
> This is an attempt to cleanup watchdog handlers. Right now,
> kernel/watchdog.c implements both softlockup and hardlockup detectors.
> Softlockup code is generic. Hardlockup code is arch specific. Some
> architectures don't use hardlockup detectors. They use their own watchdog
> detectors. To make both these combination work, we have numerous #ifdefs
> in kernel/watchdog.c.
> 
> We are trying here to make these handlers independent of each other.
> Also provide an interface for architectures to implement their own
> handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
> as weak such that architectures can override its definitions.
> 
> Thanks to Don Zickus for his suggestions.
> Here is the previous discussion
> http://www.spinics.net/lists/sparclinux/msg16441.html

Hi Babu,

I finally got some cycles to poke at this today.  Good work.  A couple of
suggestions.  For bisectability, I am thinking patch2 should be first and
patch1 and patch3 should be combined.  Also watchdog_hld.c is going to need
up top:

#define pr_fmt(fmt) "NMI watchdog: " fmt

otherwise the error messages miss the header.

Though I don't think watchdog.c and watchdog_hld.c should have the same
header.  A good solution isn't coming to me right now.  I will try to run
some tests on this tomorrow.


Cheers,
Don

> 
> Babu Moger (4):
>   watchdog: Remove hardlockup handler references
>   watchdog: Move shared definitions to nmi.h
>   watchdog: Move hardlockup detector in separate file
>   sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable
> 
>  arch/sparc/kernel/nmi.c |   44 ++++++++-
>  include/linux/nmi.h     |   19 ++++
>  kernel/Makefile         |    1 +
>  kernel/watchdog.c       |  276 ++---------------------------------------------
>  kernel/watchdog_hld.c   |  238 ++++++++++++++++++++++++++++++++++++++++
>  5 files changed, 312 insertions(+), 266 deletions(-)
>  create mode 100644 kernel/watchdog_hld.c
> 

[toc] | [next] | [standalone]


#1512914

FromBabu Moger <babu.moger@oracle.com>
Date2016-10-31 22:30 +0100
Message-ID<sysjv-7Pf-19@gated-at.bofh.it>
In reply to#1512899
On 10/31/2016 4:00 PM, Don Zickus wrote:
> On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
>> This is an attempt to cleanup watchdog handlers. Right now,
>> kernel/watchdog.c implements both softlockup and hardlockup detectors.
>> Softlockup code is generic. Hardlockup code is arch specific. Some
>> architectures don't use hardlockup detectors. They use their own watchdog
>> detectors. To make both these combination work, we have numerous #ifdefs
>> in kernel/watchdog.c.
>>
>> We are trying here to make these handlers independent of each other.
>> Also provide an interface for architectures to implement their own
>> handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
>> as weak such that architectures can override its definitions.
>>
>> Thanks to Don Zickus for his suggestions.
>> Here is the previous discussion
>> http://www.spinics.net/lists/sparclinux/msg16441.html
> Hi Babu,
>
> I finally got some cycles to poke at this today.  Good work.  A couple of
> suggestions.  For bisectability, I am thinking patch2 should be first and
> patch1 and patch3 should be combined.  Also watchdog_hld.c is going to need
> up top:
>
> #define pr_fmt(fmt) "NMI watchdog: " fmt
>
> otherwise the error messages miss the header.
>
> Though I don't think watchdog.c and watchdog_hld.c should have the same
> header.  A good solution isn't coming to me right now.  I will try to run
> some tests on this tomorrow.

    Don,  Thanks for the feedback.  Let me know if you into issues with 
your tests. I will start working on the
    review comments.

>
>
> Cheers,
> Don
>
>> Babu Moger (4):
>>    watchdog: Remove hardlockup handler references
>>    watchdog: Move shared definitions to nmi.h
>>    watchdog: Move hardlockup detector in separate file
>>    sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable
>>
>>   arch/sparc/kernel/nmi.c |   44 ++++++++-
>>   include/linux/nmi.h     |   19 ++++
>>   kernel/Makefile         |    1 +
>>   kernel/watchdog.c       |  276 ++---------------------------------------------
>>   kernel/watchdog_hld.c   |  238 ++++++++++++++++++++++++++++++++++++++++
>>   5 files changed, 312 insertions(+), 266 deletions(-)
>>   create mode 100644 kernel/watchdog_hld.c
>>

[toc] | [prev] | [next] | [standalone]


#1512925

FromBabu Moger <babu.moger@oracle.com>
Date2016-10-31 22:40 +0100
Message-ID<systc-7Sy-15@gated-at.bofh.it>
In reply to#1512899
On 10/31/2016 4:00 PM, Don Zickus wrote:
> On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
>> This is an attempt to cleanup watchdog handlers. Right now,
>> kernel/watchdog.c implements both softlockup and hardlockup detectors.
>> Softlockup code is generic. Hardlockup code is arch specific. Some
>> architectures don't use hardlockup detectors. They use their own watchdog
>> detectors. To make both these combination work, we have numerous #ifdefs
>> in kernel/watchdog.c.
>>
>> We are trying here to make these handlers independent of each other.
>> Also provide an interface for architectures to implement their own
>> handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
>> as weak such that architectures can override its definitions.
>>
>> Thanks to Don Zickus for his suggestions.
>> Here is the previous discussion
>> http://www.spinics.net/lists/sparclinux/msg16441.html
> Hi Babu,
>
> I finally got some cycles to poke at this today.  Good work.  A couple of
> suggestions.  For bisectability, I am thinking patch2 should be first and
> patch1 and patch3 should be combined.  Also watchdog_hld.c is going to need
> up top:
>
> #define pr_fmt(fmt) "NMI watchdog: " fmt
>
> otherwise the error messages miss the header.
>
> Though I don't think watchdog.c and watchdog_hld.c should have the same
> header.  A good solution isn't coming to me right now.  I will try to run
> some tests on this tomorrow.
Don, Thanks for the feedback. Let me know if you run into problems with 
your tests.
I will start working on the comments.
Thanks
Babu

>
> Cheers,
> Don
>
>> Babu Moger (4):
>>    watchdog: Remove hardlockup handler references
>>    watchdog: Move shared definitions to nmi.h
>>    watchdog: Move hardlockup detector in separate file
>>    sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable
>>
>>   arch/sparc/kernel/nmi.c |   44 ++++++++-
>>   include/linux/nmi.h     |   19 ++++
>>   kernel/Makefile         |    1 +
>>   kernel/watchdog.c       |  276 ++---------------------------------------------
>>   kernel/watchdog_hld.c   |  238 ++++++++++++++++++++++++++++++++++++++++
>>   5 files changed, 312 insertions(+), 266 deletions(-)
>>   create mode 100644 kernel/watchdog_hld.c
>>

[toc] | [prev] | [next] | [standalone]


#1513267

FromDon Zickus <dzickus@redhat.com>
Date2016-11-01 14:30 +0100
Message-ID<syHix-MM-7@gated-at.bofh.it>
In reply to#1512925
On Mon, Oct 31, 2016 at 04:30:59PM -0500, Babu Moger wrote:
> 
> On 10/31/2016 4:00 PM, Don Zickus wrote:
> >On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
> >>This is an attempt to cleanup watchdog handlers. Right now,
> >>kernel/watchdog.c implements both softlockup and hardlockup detectors.
> >>Softlockup code is generic. Hardlockup code is arch specific. Some
> >>architectures don't use hardlockup detectors. They use their own watchdog
> >>detectors. To make both these combination work, we have numerous #ifdefs
> >>in kernel/watchdog.c.
> >>
> >>We are trying here to make these handlers independent of each other.
> >>Also provide an interface for architectures to implement their own
> >>handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
> >>as weak such that architectures can override its definitions.
> >>
> >>Thanks to Don Zickus for his suggestions.
> >>Here is the previous discussion
> >>http://www.spinics.net/lists/sparclinux/msg16441.html
> >Hi Babu,
> >
> >I finally got some cycles to poke at this today.  Good work.  A couple of
> >suggestions.  For bisectability, I am thinking patch2 should be first and
> >patch1 and patch3 should be combined.  Also watchdog_hld.c is going to need
> >up top:
> >
> >#define pr_fmt(fmt) "NMI watchdog: " fmt
> >
> >otherwise the error messages miss the header.
> >
> >Though I don't think watchdog.c and watchdog_hld.c should have the same
> >header.  A good solution isn't coming to me right now.  I will try to run
> >some tests on this tomorrow.
> Don, Thanks for the feedback. Let me know if you run into problems with your
> tests.

Hi Babu,

My tests passed.  I just have to tweak the expected output lines as they
constantly change. :-(

I am going to play with different config options to see if things break from
a compile perspective.

> I will start working on the comments.

Great.

Cheers,
Don

> Thanks
> Babu
> 
> >
> >Cheers,
> >Don
> >
> >>Babu Moger (4):
> >>   watchdog: Remove hardlockup handler references
> >>   watchdog: Move shared definitions to nmi.h
> >>   watchdog: Move hardlockup detector in separate file
> >>   sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable
> >>
> >>  arch/sparc/kernel/nmi.c |   44 ++++++++-
> >>  include/linux/nmi.h     |   19 ++++
> >>  kernel/Makefile         |    1 +
> >>  kernel/watchdog.c       |  276 ++---------------------------------------------
> >>  kernel/watchdog_hld.c   |  238 ++++++++++++++++++++++++++++++++++++++++
> >>  5 files changed, 312 insertions(+), 266 deletions(-)
> >>  create mode 100644 kernel/watchdog_hld.c
> >>
> 

[toc] | [prev] | [next] | [standalone]


#1513303

FromBabu Moger <babu.moger@oracle.com>
Date2016-11-01 16:10 +0100
Message-ID<syIRj-1Tk-17@gated-at.bofh.it>
In reply to#1513267
On 11/1/2016 8:20 AM, Don Zickus wrote:
> On Mon, Oct 31, 2016 at 04:30:59PM -0500, Babu Moger wrote:
>> On 10/31/2016 4:00 PM, Don Zickus wrote:
>>> On Wed, Oct 26, 2016 at 09:02:19AM -0700, Babu Moger wrote:
>>>> This is an attempt to cleanup watchdog handlers. Right now,
>>>> kernel/watchdog.c implements both softlockup and hardlockup detectors.
>>>> Softlockup code is generic. Hardlockup code is arch specific. Some
>>>> architectures don't use hardlockup detectors. They use their own watchdog
>>>> detectors. To make both these combination work, we have numerous #ifdefs
>>>> in kernel/watchdog.c.
>>>>
>>>> We are trying here to make these handlers independent of each other.
>>>> Also provide an interface for architectures to implement their own
>>>> handlers. watchdog_nmi_enable and watchdog_nmi_disable will be defined
>>>> as weak such that architectures can override its definitions.
>>>>
>>>> Thanks to Don Zickus for his suggestions.
>>>> Here is the previous discussion
>>>> http://www.spinics.net/lists/sparclinux/msg16441.html
>>> Hi Babu,
>>>
>>> I finally got some cycles to poke at this today.  Good work.  A couple of
>>> suggestions.  For bisectability, I am thinking patch2 should be first and
>>> patch1 and patch3 should be combined.  Also watchdog_hld.c is going to need
>>> up top:
>>>
>>> #define pr_fmt(fmt) "NMI watchdog: " fmt
>>>
>>> otherwise the error messages miss the header.
>>>
>>> Though I don't think watchdog.c and watchdog_hld.c should have the same
>>> header.  A good solution isn't coming to me right now.  I will try to run
>>> some tests on this tomorrow.
>> Don, Thanks for the feedback. Let me know if you run into problems with your
>> tests.
> Hi Babu,
>
> My tests passed.  I just have to tweak the expected output lines as they
> constantly change. :-(
>
> I am going to play with different config options to see if things break from
> a compile perspective.

Don, Great. Thanks for the update.  I had couple of compilation issues 
with different config options.

1. drivers/edac/edac_device.o:(.discard+0x0): multiple definition of 
`__pcpu_unique_hrtimer_interrupts'
     drivers/edac/edac_mc.o:(.discard+0x0): first defined here

This was a problem with uni processor config.  Thinking of moving the 
definition of hrtimer_interrupts and is_hardlockup
into watchdog.c as softlockup code does most of the work here.

2. kernel/built-in.o: In function `watchdog_overflow_callback':
   >> watchdog_hld.c:(.text+0x56940): undefined reference to 
`sysctl_hardlockup_all_cpu_backtrace'

Moved this definition to nmi.h.
Will post the v2 version soon with all the comments included.

Thanks
Babu
>
>> I will start working on the comments.
> Great.
>
> Cheers,
> Don
>
>> Thanks
>> Babu
>>
>>> Cheers,
>>> Don
>>>
>>>> Babu Moger (4):
>>>>    watchdog: Remove hardlockup handler references
>>>>    watchdog: Move shared definitions to nmi.h
>>>>    watchdog: Move hardlockup detector in separate file
>>>>    sparc: Implement watchdog_nmi_enable and watchdog_nmi_disable
>>>>
>>>>   arch/sparc/kernel/nmi.c |   44 ++++++++-
>>>>   include/linux/nmi.h     |   19 ++++
>>>>   kernel/Makefile         |    1 +
>>>>   kernel/watchdog.c       |  276 ++---------------------------------------------
>>>>   kernel/watchdog_hld.c   |  238 ++++++++++++++++++++++++++++++++++++++++
>>>>   5 files changed, 312 insertions(+), 266 deletions(-)
>>>>   create mode 100644 kernel/watchdog_hld.c
>>>>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web