<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/watchdog.c, branch linux-5.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-02-08T13:10:50Z</updated>
<entry>
<title>powerpc: move NMI entry/exit code into wrapper</title>
<updated>2021-02-08T13:10:50Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=118178e62e2e0da39b394e812fef7179c8bdb3bc'/>
<id>urn:sha1:118178e62e2e0da39b394e812fef7179c8bdb3bc</id>
<content type='text'>
This moves the common NMI entry and exit code into the interrupt handler
wrappers.

This changes the behaviour of soft-NMI (watchdog) and HMI interrupts, and
also MCE interrupts on 64e, by adding missing parts of the NMI entry to
them.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-40-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: convert interrupt handlers to use wrappers</title>
<updated>2021-02-08T13:02:12Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a96570ffceb15c6ed9cc6f990f172dcdc8ac279'/>
<id>urn:sha1:3a96570ffceb15c6ed9cc6f990f172dcdc8ac279</id>
<content type='text'>
Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-29-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/watchdog: Declare soft_nmi_interrupt() prototype</title>
<updated>2021-01-30T00:39:30Z</updated>
<author>
<name>Cédric Le Goater</name>
</author>
<published>2021-01-04T14:32:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ae440fb3d7d1c91ada7d6b13e009bd9f4f00e6c'/>
<id>urn:sha1:9ae440fb3d7d1c91ada7d6b13e009bd9f4f00e6c</id>
<content type='text'>
soft_nmi_interrupt() usage requires PPC_WATCHDOG to be configured.
Check the CONFIG definition to declare the prototype.

It fixes this W=1 compile error :

../arch/powerpc/kernel/watchdog.c:250:6: error: no previous prototype for ‘soft_nmi_interrupt’ [-Werror=missing-prototypes]
  250 | void soft_nmi_interrupt(struct pt_regs *regs)
      |      ^~~~~~~~~~~~~~~~~~

Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210104143206.695198-18-clg@kaod.org
</content>
</entry>
<entry>
<title>powerpc/watchdog: Use hrtimers for per-CPU heartbeat</title>
<updated>2019-04-30T01:31:02Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2019-04-09T04:40:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7ae3f6e130e8dc6188b59e3b4ebc2f16e9c8d053'/>
<id>urn:sha1:7ae3f6e130e8dc6188b59e3b4ebc2f16e9c8d053</id>
<content type='text'>
Using a jiffies timer creates a dependency on the tick_do_timer_cpu
incrementing jiffies. If that CPU has locked up and jiffies is not
incrementing, the watchdog heartbeat timer for all CPUs stops and
creates false positives and confusing warnings on local CPUs, and
also causes the SMP detector to stop, so the root cause is never
detected.

Fix this by using hrtimer based timers for the watchdog heartbeat,
like the generic kernel hardlockup detector.

Cc: Gautham R. Shenoy &lt;ego@linux.vnet.ibm.com&gt;
Reported-by: Ravikumar Bangoria &lt;ravi.bangoria@in.ibm.com&gt;
Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Tested-by: Ravi Bangoria &lt;ravi.bangoria@linux.ibm.com&gt;
Reported-by: Ravi Bangoria &lt;ravi.bangoria@linux.ibm.com&gt;
Reviewed-by: Gautham R. Shenoy &lt;ego@linux.vnet.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc: NMI IPI make NMI IPIs fully sychronous</title>
<updated>2018-07-24T12:03:14Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2018-04-25T05:17:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b73151fff63fb019db8171cb81c6c978533844b'/>
<id>urn:sha1:5b73151fff63fb019db8171cb81c6c978533844b</id>
<content type='text'>
There is an asynchronous aspect to smp_send_nmi_ipi. The caller waits
for all CPUs to call in to the handler, but it does not wait for
completion of the handler. This is a needless complication, so remove
it and always wait synchronously.

The synchronous wait allows the caller to easily time out and clear
the wait for completion (zero nmi_ipi_busy_count) in the case of badly
behaved handlers. This would have prevented the recent smp_send_stop
NMI IPI bug from causing the system to hang.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/watchdog: provide more data in watchdog messages</title>
<updated>2018-05-10T13:25:11Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2018-05-05T07:26:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4e49226ea8e1810d2c14d9e92a290bad239b512b'/>
<id>urn:sha1:4e49226ea8e1810d2c14d9e92a290bad239b512b</id>
<content type='text'>
Provide timebase and timebase of last heartbeat in watchdog lockup
messages. Also provide a stack trace of when a CPU becomes un-stuck,
which can be useful -- it could be where irqs are re-enabled, so it
may be the end of the critical section which is responsible for the
latency which is useful information.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/watchdog: don't update the watchdog timestamp if a lockup is detected</title>
<updated>2018-05-10T13:25:11Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2018-05-05T07:25:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a951c4e7e8df5d6df52bace1b4ff327885584d6'/>
<id>urn:sha1:5a951c4e7e8df5d6df52bace1b4ff327885584d6</id>
<content type='text'>
The watchdog heartbeat timestamp is updated when the local heartbeat
timer fires (or touch_nmi_watchdog() is called).

This is an interesting data point, so don't overwrite it when the
soft-NMI interrupt detects a hard lockup. That code came from a pre-
merge version to prevent hard lockup messages flood, but that's taken
care of with the stuck CPU logic now, so there is no reason to
update the heartbeat timestamp here.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/watchdog: fix typo 'can by' to 'can be'</title>
<updated>2018-05-10T13:25:05Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2018-05-06T11:23:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c18659dd498b25c6651ba83d4267ba7f9458c9c'/>
<id>urn:sha1:7c18659dd498b25c6651ba83d4267ba7f9458c9c</id>
<content type='text'>
Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/watchdog: Print the NIP in soft_nmi_interrupt()</title>
<updated>2018-01-28T06:08:29Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2017-10-12T04:44:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0bc00914010e3826a3d168d1c879f79800a11bae'/>
<id>urn:sha1:0bc00914010e3826a3d168d1c879f79800a11bae</id>
<content type='text'>
When a CPU detects its locked up via soft_nmi_interrupt() we have
pt_regs, so print the regs-&gt;nip, which points to where we took the
soft-NMI.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/watchdog: regs can't be null in soft_nmi_interrupt()</title>
<updated>2018-01-28T06:08:28Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2017-10-12T04:44:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ba45b7e46e2ae7c059f3335120aed5e2c749bd9'/>
<id>urn:sha1:3ba45b7e46e2ae7c059f3335120aed5e2c749bd9</id>
<content type='text'>
soft_nmi_interrupt() is called directly from the asm exception
handling code, which passes regs as a pointer to the stack. So regs
can't be NULL, it may be full of junk, but that's a separate problem.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
</feed>
