linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 0/4] watchdog_hld cleanup and async model for arm64
@ 2021-09-23 14:09 Pingfan Liu
  2021-09-23 14:09 ` [PATCHv2 1/4] kernel/watchdog: trival cleanups Pingfan Liu
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Pingfan Liu @ 2021-09-23 14:09 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel
  Cc: Pingfan Liu, Sumit Garg, Catalin Marinas, Will Deacon,
	Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Namhyung Kim, Marc Zyngier,
	Kees Cook, Masahiro Yamada, Sami Tolvanen, Petr Mladek,
	Andrew Morton, Wang Qing, Peter Zijlstra (Intel),
	Santosh Sivaraj

hard lockup detector is helpful to diagnose unpaired irq enable/disable.
Sumit has tried with a series, and the last one is V5 [1].
Since it lasts a long time without any update, I takes a retry, which
addresses the delay intialization of watchdog_hld.
( To: Sumit, I think the main body of [4/4] is contributed from you,so I
keep you as the author, please let me know if you dislike it and my
modification.)

There is an obstacle to integrate arm64 hw perf event into watchdog_hld.
When lockup_detector_init()->watchdog_nmi_probe(), on arm64, PMU is not
ready until device_initcall(armv8_pmu_driver_init).  And it is deeply
integrated with the driver model and cpuhp. Hence it is hard to push
the initialization of armv8_pmu_driver_init() before smp_init().

But it is easy to take an opposite approach by enabling watchdog_hld to
get the capability of PMU async. 
The async model is achieved by expanding watchdog_nmi_probe() with
-EBUSY, and a re-initializing work_struct which waits on a
wait_queue_head.

In this series, [1-2/4] are trivial cleanup. [3-4/4] is for this async
model.


v1 > v2:
    uplift the async model from hard lockup layer to watchdog layter.
The benefit is simpler code, the drawback is re-initialize means wasted
alloc/free.
    
[1]: http://lore.kernel.org/linux-arm-kernel/1610712101-14929-1-git-send-email-sumit.garg@linaro.org

Cc: Sumit Garg <sumit.garg@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Sami Tolvanen <samitolvanen@google.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Wang Qing <wangqing@vivo.com>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Santosh Sivaraj <santosh@fossix.org>
To: linux-arm-kernel@lists.infradead.org
To: linux-kernel@vger.kernel.org

*** BLURB HERE ***

Pingfan Liu (3):
  kernel/watchdog: trival cleanups
  kernel/watchdog_hld: clarify the condition in
    hardlockup_detector_event_create()
  kernel/watchdog: adapt the watchdog_hld interface for async model

Sumit Garg (1):
  arm64: Enable perf events based hard lockup detector

 arch/arm64/Kconfig               |  2 ++
 arch/arm64/kernel/Makefile       |  1 +
 arch/arm64/kernel/perf_event.c   | 11 +++++++--
 arch/arm64/kernel/watchdog_hld.c | 36 +++++++++++++++++++++++++++
 drivers/perf/arm_pmu.c           |  5 ++++
 include/linux/nmi.h              |  5 +++-
 include/linux/perf/arm_pmu.h     |  2 ++
 kernel/watchdog.c                | 42 +++++++++++++++++++++++++++-----
 kernel/watchdog_hld.c            |  5 +++-
 9 files changed, 99 insertions(+), 10 deletions(-)
 create mode 100644 arch/arm64/kernel/watchdog_hld.c

-- 
2.31.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-10-08 15:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-23 14:09 [PATCHv2 0/4] watchdog_hld cleanup and async model for arm64 Pingfan Liu
2021-09-23 14:09 ` [PATCHv2 1/4] kernel/watchdog: trival cleanups Pingfan Liu
2021-10-04  9:32   ` Petr Mladek
2021-10-08  4:04     ` Pingfan Liu
2021-09-23 14:09 ` [PATCHv2 2/4] kernel/watchdog_hld: clarify the condition in hardlockup_detector_event_create() Pingfan Liu
2021-10-04 12:32   ` Petr Mladek
2021-10-08  4:11     ` Pingfan Liu
2021-09-23 14:09 ` [PATCHv2 3/4] kernel/watchdog: adapt the watchdog_hld interface for async model Pingfan Liu
2021-10-05  7:03   ` Petr Mladek
2021-10-08  5:53     ` Pingfan Liu
2021-10-08 15:10       ` Pingfan Liu
2021-09-23 14:09 ` [PATCHv2 4/4] arm64: Enable perf events based hard lockup detector Pingfan Liu
2021-09-23 14:29   ` Pingfan Liu
2021-09-24  5:18     ` Sumit Garg
2021-09-24 13:31       ` Pingfan Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).