From: Nicholas Piggin <npiggin@gmail.com>
To: benh@kernel.crashing.org, haren@linux.vnet.ibm.com,
Laurent Dufour <ldufour@linux.ibm.com>,
linux@roeck-us.net, mpe@ellerman.id.au, nathanl@linux.ibm.com,
paulus@samba.org, wim@linux-watchdog.org
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-watchdog@vger.kernel.org
Subject: Re: [PATCH v3 3/4] powerpc/watchdog: introduce a NMI watchdog's factor
Date: Tue, 12 Jul 2022 11:42:52 +1000 [thread overview]
Message-ID: <1657589870.vvurapsif3.astroid@bobo.none> (raw)
In-Reply-To: <20220627135347.32624-4-ldufour@linux.ibm.com>
Excerpts from Laurent Dufour's message of June 27, 2022 11:53 pm:
> Introduce a factor which would apply to the NMI watchdog timeout.
>
> This factor is a percentage added to the watchdog_tresh value. The value is
> set under the watchdog_mutex protection and lockup_detector_reconfigure()
> is called to recompute wd_panic_timeout_tb.
>
> Once the factor is set, it remains until it is set back to 0, which means
> no impact.
Looks okay. We could worry about making it more generic or nicer if
another user came along.
Could you make the naming a bit more self documenting?
watchdog_nmi_set_timeout_pct(), maybe? Does the wd really care
that it is for LPM in particular?
Variables and parameters could have a _pct suffix too.
Otherwise
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
>
> Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
> ---
> arch/powerpc/include/asm/nmi.h | 2 ++
> arch/powerpc/kernel/watchdog.c | 21 ++++++++++++++++++++-
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/nmi.h b/arch/powerpc/include/asm/nmi.h
> index ea0e487f87b1..7d6a8d9b0543 100644
> --- a/arch/powerpc/include/asm/nmi.h
> +++ b/arch/powerpc/include/asm/nmi.h
> @@ -5,8 +5,10 @@
> #ifdef CONFIG_PPC_WATCHDOG
> extern void arch_touch_nmi_watchdog(void);
> long soft_nmi_interrupt(struct pt_regs *regs);
> +void watchdog_nmi_set_lpm_factor(u64 factor);
> #else
> static inline void arch_touch_nmi_watchdog(void) {}
> +static inline void watchdog_nmi_set_lpm_factor(u64 factor) {}
> #endif
>
> #ifdef CONFIG_NMI_IPI
> diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
> index 7d28b9553654..80851b228f71 100644
> --- a/arch/powerpc/kernel/watchdog.c
> +++ b/arch/powerpc/kernel/watchdog.c
> @@ -91,6 +91,10 @@ static cpumask_t wd_smp_cpus_pending;
> static cpumask_t wd_smp_cpus_stuck;
> static u64 wd_smp_last_reset_tb;
>
> +#ifdef CONFIG_PPC_PSERIES
> +static u64 wd_factor;
> +#endif
> +
> /*
> * Try to take the exclusive watchdog action / NMI IPI / printing lock.
> * wd_smp_lock must be held. If this fails, we should return and wait
> @@ -527,7 +531,13 @@ static int stop_watchdog_on_cpu(unsigned int cpu)
>
> static void watchdog_calc_timeouts(void)
> {
> - wd_panic_timeout_tb = watchdog_thresh * ppc_tb_freq;
> + u64 threshold = watchdog_thresh;
> +
> +#ifdef CONFIG_PPC_PSERIES
> + threshold += (READ_ONCE(wd_factor) * threshold) / 100;
> +#endif
> +
> + wd_panic_timeout_tb = threshold * ppc_tb_freq;
>
> /* Have the SMP detector trigger a bit later */
> wd_smp_panic_timeout_tb = wd_panic_timeout_tb * 3 / 2;
> @@ -570,3 +580,12 @@ int __init watchdog_nmi_probe(void)
> }
> return 0;
> }
> +
> +#ifdef CONFIG_PPC_PSERIES
> +void watchdog_nmi_set_lpm_factor(u64 factor)
> +{
> + pr_info("Set the NMI watchdog factor to %llu%%\n", factor);
> + WRITE_ONCE(wd_factor, factor);
> + lockup_detector_reconfigure();
> +}
> +#endif
> --
> 2.36.1
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com>
To: benh@kernel.crashing.org, haren@linux.vnet.ibm.com,
Laurent Dufour <ldufour@linux.ibm.com>,
linux@roeck-us.net, mpe@ellerman.id.au, nathanl@linux.ibm.com,
paulus@samba.org, wim@linux-watchdog.org
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
linux-watchdog@vger.kernel.org
Subject: Re: [PATCH v3 3/4] powerpc/watchdog: introduce a NMI watchdog's factor
Date: Tue, 12 Jul 2022 11:42:52 +1000 [thread overview]
Message-ID: <1657589870.vvurapsif3.astroid@bobo.none> (raw)
In-Reply-To: <20220627135347.32624-4-ldufour@linux.ibm.com>
Excerpts from Laurent Dufour's message of June 27, 2022 11:53 pm:
> Introduce a factor which would apply to the NMI watchdog timeout.
>
> This factor is a percentage added to the watchdog_tresh value. The value is
> set under the watchdog_mutex protection and lockup_detector_reconfigure()
> is called to recompute wd_panic_timeout_tb.
>
> Once the factor is set, it remains until it is set back to 0, which means
> no impact.
Looks okay. We could worry about making it more generic or nicer if
another user came along.
Could you make the naming a bit more self documenting?
watchdog_nmi_set_timeout_pct(), maybe? Does the wd really care
that it is for LPM in particular?
Variables and parameters could have a _pct suffix too.
Otherwise
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
>
> Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
> ---
> arch/powerpc/include/asm/nmi.h | 2 ++
> arch/powerpc/kernel/watchdog.c | 21 ++++++++++++++++++++-
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/nmi.h b/arch/powerpc/include/asm/nmi.h
> index ea0e487f87b1..7d6a8d9b0543 100644
> --- a/arch/powerpc/include/asm/nmi.h
> +++ b/arch/powerpc/include/asm/nmi.h
> @@ -5,8 +5,10 @@
> #ifdef CONFIG_PPC_WATCHDOG
> extern void arch_touch_nmi_watchdog(void);
> long soft_nmi_interrupt(struct pt_regs *regs);
> +void watchdog_nmi_set_lpm_factor(u64 factor);
> #else
> static inline void arch_touch_nmi_watchdog(void) {}
> +static inline void watchdog_nmi_set_lpm_factor(u64 factor) {}
> #endif
>
> #ifdef CONFIG_NMI_IPI
> diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
> index 7d28b9553654..80851b228f71 100644
> --- a/arch/powerpc/kernel/watchdog.c
> +++ b/arch/powerpc/kernel/watchdog.c
> @@ -91,6 +91,10 @@ static cpumask_t wd_smp_cpus_pending;
> static cpumask_t wd_smp_cpus_stuck;
> static u64 wd_smp_last_reset_tb;
>
> +#ifdef CONFIG_PPC_PSERIES
> +static u64 wd_factor;
> +#endif
> +
> /*
> * Try to take the exclusive watchdog action / NMI IPI / printing lock.
> * wd_smp_lock must be held. If this fails, we should return and wait
> @@ -527,7 +531,13 @@ static int stop_watchdog_on_cpu(unsigned int cpu)
>
> static void watchdog_calc_timeouts(void)
> {
> - wd_panic_timeout_tb = watchdog_thresh * ppc_tb_freq;
> + u64 threshold = watchdog_thresh;
> +
> +#ifdef CONFIG_PPC_PSERIES
> + threshold += (READ_ONCE(wd_factor) * threshold) / 100;
> +#endif
> +
> + wd_panic_timeout_tb = threshold * ppc_tb_freq;
>
> /* Have the SMP detector trigger a bit later */
> wd_smp_panic_timeout_tb = wd_panic_timeout_tb * 3 / 2;
> @@ -570,3 +580,12 @@ int __init watchdog_nmi_probe(void)
> }
> return 0;
> }
> +
> +#ifdef CONFIG_PPC_PSERIES
> +void watchdog_nmi_set_lpm_factor(u64 factor)
> +{
> + pr_info("Set the NMI watchdog factor to %llu%%\n", factor);
> + WRITE_ONCE(wd_factor, factor);
> + lockup_detector_reconfigure();
> +}
> +#endif
> --
> 2.36.1
>
>
next prev parent reply other threads:[~2022-07-12 1:43 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 13:53 [PATCH v3 0/4] Extending NMI watchdog during LPM Laurent Dufour
2022-06-27 13:53 ` Laurent Dufour
2022-06-27 13:53 ` [PATCH v3 1/4] powerpc/mobility: wait for memory transfer to complete Laurent Dufour
2022-06-27 13:53 ` Laurent Dufour
2022-07-12 1:33 ` Nicholas Piggin
2022-07-12 1:33 ` Nicholas Piggin
2022-07-12 9:38 ` Laurent Dufour
2022-07-12 9:38 ` Laurent Dufour
2022-06-27 13:53 ` [PATCH v3 2/4] watchdog: export lockup_detector_reconfigure Laurent Dufour
2022-06-27 13:53 ` Laurent Dufour
2022-06-27 13:53 ` [PATCH v3 3/4] powerpc/watchdog: introduce a NMI watchdog's factor Laurent Dufour
2022-06-27 13:53 ` Laurent Dufour
2022-07-12 1:42 ` Nicholas Piggin [this message]
2022-07-12 1:42 ` Nicholas Piggin
2022-07-12 9:51 ` Laurent Dufour
2022-07-12 9:51 ` Laurent Dufour
2022-06-27 13:53 ` [PATCH v3 4/4] pseries/mobility: set NMI watchdog factor during LPM Laurent Dufour
2022-06-27 13:53 ` Laurent Dufour
2022-07-12 1:46 ` Nicholas Piggin
2022-07-12 1:46 ` Nicholas Piggin
2022-07-12 9:47 ` Laurent Dufour
2022-07-12 9:47 ` Laurent Dufour
2022-07-13 14:22 ` Laurent Dufour
2022-07-13 14:22 ` Laurent Dufour
2022-07-12 1:21 ` [PATCH v3 0/4] Extending NMI watchdog " Nicholas Piggin
2022-07-12 1:21 ` Nicholas Piggin
2022-07-12 9:32 ` Laurent Dufour
2022-07-12 9:32 ` Laurent Dufour
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1657589870.vvurapsif3.astroid@bobo.none \
--to=npiggin@gmail.com \
--cc=benh@kernel.crashing.org \
--cc=haren@linux.vnet.ibm.com \
--cc=ldufour@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=nathanl@linux.ibm.com \
--cc=paulus@samba.org \
--cc=wim@linux-watchdog.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.