linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Burton <paul.burton@mips.com>
To: "Mehrtens, Hauke" <hauke.mehrtens@intel.com>
Cc: "linux-watchdog@vger.kernel.org" <linux-watchdog@vger.kernel.org>,
	"linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>
Subject: Re: print active stack on watchdog pre timeout for separate irq stack
Date: Fri, 15 Feb 2019 19:28:13 +0000	[thread overview]
Message-ID: <20190215192812.unoor5dudhvn2tgt@pburton-laptop> (raw)
In-Reply-To: <9231D502B07C5E4A8B32D5115C9F19991F89C484@IRSMSX108.ger.corp.intel.com>

Hi Hauke,

On Thu, Feb 14, 2019 at 09:27:17AM +0000, Mehrtens, Hauke wrote:
> We would like to print the stack of the currently active kernel thread
> from the interrupt handler when the watchdog pre timeout interrupt for
> our watchdog is triggered, currently we have a WARN_ONCE() in the code
> of the interrupt handler, but this only prints the interrupt stack,
> which is pretty boring. On MIPS the interrupts are handled on a
> separate stack and not on top of the stack of the current active
> kernel thread to avoid stack overflows. Is there some function which
> would print the stack trace of the current active kernel thread in
> addition or instead of the interrupt stack inside of an interrupt?
>%
> This was seen on kernel 4.9.109, but I am not aware of any changes in
> this area in the last few years.

What's meant to happen is that we unwind the interrupt stack, then once
we reach the end of that we jump over to the task stack & continue
unwinding there to obtain a complete stack trace.

That was added in v4.11 by commit db8466c581cc ("MIPS: IRQ Stack: Unwind
IRQ stack onto task stack"), and it looks like it was backported to v4.9
starting with v4.9.54 so you should have it already.

Could you take a look at the "if (unlikely(*sp == irq_stack_high))"
check in unwind_stack_by_address() & see whether you hit it?

Thanks,
    Paul

      parent reply	other threads:[~2019-02-15 19:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-14  9:27 print active stack on watchdog pre timeout for separate irq stack Mehrtens, Hauke
2019-02-14 22:10 ` Guenter Roeck
2019-02-15 19:28 ` Paul Burton [this message]

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=20190215192812.unoor5dudhvn2tgt@pburton-laptop \
    --to=paul.burton@mips.com \
    --cc=hauke.mehrtens@intel.com \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.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 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).