public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Naveen N Rao <naveen@kernel.org>
Cc: stable@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>
Subject: Re: [PATCH 5.15.y 1/2] powerpc/ftrace: Create a dummy stackframe to fix stack unwind
Date: Mon, 18 Dec 2023 12:05:49 +0100	[thread overview]
Message-ID: <2023121842-vertebrae-sedative-4e9e@gregkh> (raw)
In-Reply-To: <20231215111433.2362641-1-naveen@kernel.org>

On Fri, Dec 15, 2023 at 04:44:32PM +0530, Naveen N Rao wrote:
> commit 41a506ef71eb38d94fe133f565c87c3e06ccc072 upstream.
> 
> With ppc64 -mprofile-kernel and ppc32 -pg, profiling instructions to
> call into ftrace are emitted right at function entry. The instruction
> sequence used is minimal to reduce overhead. Crucially, a stackframe is
> not created for the function being traced. This breaks stack unwinding
> since the function being traced does not have a stackframe for itself.
> As such, it never shows up in the backtrace:
> 
> /sys/kernel/debug/tracing # echo 1 > /proc/sys/kernel/stack_tracer_enabled
> /sys/kernel/debug/tracing # cat stack_trace
>         Depth    Size   Location    (17 entries)
>         -----    ----   --------
>   0)     4144      32   ftrace_call+0x4/0x44
>   1)     4112     432   get_page_from_freelist+0x26c/0x1ad0
>   2)     3680     496   __alloc_pages+0x290/0x1280
>   3)     3184     336   __folio_alloc+0x34/0x90
>   4)     2848     176   vma_alloc_folio+0xd8/0x540
>   5)     2672     272   __handle_mm_fault+0x700/0x1cc0
>   6)     2400     208   handle_mm_fault+0xf0/0x3f0
>   7)     2192      80   ___do_page_fault+0x3e4/0xbe0
>   8)     2112     160   do_page_fault+0x30/0xc0
>   9)     1952     256   data_access_common_virt+0x210/0x220
>  10)     1696     400   0xc00000000f16b100
>  11)     1296     384   load_elf_binary+0x804/0x1b80
>  12)      912     208   bprm_execve+0x2d8/0x7e0
>  13)      704      64   do_execveat_common+0x1d0/0x2f0
>  14)      640     160   sys_execve+0x54/0x70
>  15)      480      64   system_call_exception+0x138/0x350
>  16)      416     416   system_call_common+0x160/0x2c4
> 
> Fix this by having ftrace create a dummy stackframe for the function
> being traced. With this, backtraces now capture the function being
> traced:
> 
> /sys/kernel/debug/tracing # cat stack_trace
>         Depth    Size   Location    (17 entries)
>         -----    ----   --------
>   0)     3888      32   _raw_spin_trylock+0x8/0x70
>   1)     3856     576   get_page_from_freelist+0x26c/0x1ad0
>   2)     3280      64   __alloc_pages+0x290/0x1280
>   3)     3216     336   __folio_alloc+0x34/0x90
>   4)     2880     176   vma_alloc_folio+0xd8/0x540
>   5)     2704     416   __handle_mm_fault+0x700/0x1cc0
>   6)     2288      96   handle_mm_fault+0xf0/0x3f0
>   7)     2192      48   ___do_page_fault+0x3e4/0xbe0
>   8)     2144     192   do_page_fault+0x30/0xc0
>   9)     1952     608   data_access_common_virt+0x210/0x220
>  10)     1344      16   0xc0000000334bbb50
>  11)     1328     416   load_elf_binary+0x804/0x1b80
>  12)      912      64   bprm_execve+0x2d8/0x7e0
>  13)      848     176   do_execveat_common+0x1d0/0x2f0
>  14)      672     192   sys_execve+0x54/0x70
>  15)      480      64   system_call_exception+0x138/0x350
>  16)      416     416   system_call_common+0x160/0x2c4
> 
> This results in two additional stores in the ftrace entry code, but
> produces reliable backtraces.
> 
> Fixes: 153086644fd1 ("powerpc/ftrace: Add support for -mprofile-kernel ftrace ABI")
> Cc: stable@vger.kernel.org
> Signed-off-by: Naveen N Rao <naveen@kernel.org>
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> Link: https://msgid.link/20230621051349.759567-1-naveen@kernel.org
> ---
>  arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 

All now queued up, thanks.

greg k-h

      parent reply	other threads:[~2023-12-18 11:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-07  7:05 FAILED: patch "[PATCH] powerpc/ftrace: Create a dummy stackframe to fix stack unwind" failed to apply to 5.15-stable tree gregkh
2023-12-15 11:14 ` [PATCH 5.15.y 1/2] powerpc/ftrace: Create a dummy stackframe to fix stack unwind Naveen N Rao
2023-12-15 11:14   ` [PATCH 5.15.y 2/2] powerpc/ftrace: Fix stack teardown in ftrace_no_trace Naveen N Rao
2023-12-18 11:05   ` Greg KH [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=2023121842-vertebrae-sedative-4e9e@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=mpe@ellerman.id.au \
    --cc=naveen@kernel.org \
    --cc=stable@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