[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210318182607.GO5469@sirena.org.uk>
Date: Thu, 18 Mar 2021 18:26:07 +0000
From: Mark Brown <broonie@...nel.org>
To: madvenka@...ux.microsoft.com
Cc: mark.rutland@....com, jpoimboe@...hat.com, jthierry@...hat.com,
catalin.marinas@....com, will@...nel.org,
linux-arm-kernel@...ts.infradead.org,
live-patching@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH v2 3/8] arm64: Terminate the stack trace at
TASK_FRAME and EL0_FRAME
On Mon, Mar 15, 2021 at 11:57:55AM -0500, madvenka@...ux.microsoft.com wrote:
> + /* Terminal record, nothing to unwind */
> + if (fp == (unsigned long) regs->stackframe) {
> + if (regs->frame_type == TASK_FRAME ||
> + regs->frame_type == EL0_FRAME)
> + return -ENOENT;
> return -EINVAL;
> + }
This is conflating the reliable stacktrace checks (which your series
will later flag up with frame->reliable) with verifying that we found
the bottom of the stack by looking for this terminal stack frame record.
For the purposes of determining if the unwinder got to the bottom of the
stack we don't care what stack type we're looking at, we just care if it
managed to walk to this defined final record.
At the minute nothing except reliable stack trace has any intention of
checking the specific return code but it's clearer to be consistent.
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists