All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Gabriel de Perthuis <g2p.code@gmail.com>,
	Haiyue Wang <haiyuewa@163.com>,
	Sami Tolvanen <samitolvanen@google.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H . Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, linux-trace-kernel@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ftrace: x86: Fix a compile error about get_kernel_nofault()
Date: Thu, 6 Feb 2025 13:13:28 +0100	[thread overview]
Message-ID: <20250206121328.GN7145@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20250206205449.5f83a585945ae6eb0cc15483@kernel.org>

On Thu, Feb 06, 2025 at 08:54:49PM +0900, Masami Hiramatsu wrote:
> On Thu, 6 Feb 2025 09:12:25 +0100
> Peter Zijlstra <peterz@infradead.org> wrote:
> 
> > 
> > > +#ifdef CONFIG_HAVE_FENTRY
> > > +/* Convert fentry address to the symbol address. */
> > > +unsigned long arch_ftrace_get_symaddr(unsigned long fentry_ip)
> > > +{
> > > +#ifdef CONFIG_X86_KERNEL_IBT
> > > +	u32 instr;
> > > +
> > > +	/* We want to be extra safe in case entry ip is on the page edge,
> > > +	 * but otherwise we need to avoid get_kernel_nofault()'s overhead.
> > > +	 */
> > > +	if ((fentry_ip & ~PAGE_MASK) < ENDBR_INSN_SIZE) {
> > > +		if (get_kernel_nofault(instr, (u32 *)(fentry_ip - ENDBR_INSN_SIZE)))
> > > +			return fentry_ip;
> > > +	} else {
> > > +		instr = *(u32 *)(fentry_ip - ENDBR_INSN_SIZE);
> > > +	}
> > > +	if (is_endbr(instr))
> > > +		fentry_ip -= ENDBR_INSN_SIZE;
> > > +#endif
> > > +	return fentry_ip;
> > > +}
> > > +#endif
> > 
> > Urgh, that reminds, me. I have a pile of patches cleaning up this mess.
> > Let me go find them.
> 
> Thanks for cleaning up! So would it change the location of ENDBR and
> symbol address?

No, it just cleans up this utter trainwreck. I also noticed this is a
second (new) copy of this garbage. Clearly I didn't yell loud enough
last time and people didn't think to vomit when doing the copy/paste :/

Function will look something like:

unsigned long arch_ftrace_get_symaddr(unsigned long fentry_ip)
{
	if (is_endbr(fentry_ip - ENDBR_INSN_SIZE))
		fentry_op -= ENDBR_INSN_SIZE;
	return fentry_ip;
}

Let me finish local build test before I push out.

  reply	other threads:[~2025-02-06 12:13 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-06  3:12 [PATCH] ftrace: x86: Fix a compile error about get_kernel_nofault() Masami Hiramatsu (Google)
2025-02-06  8:12 ` Peter Zijlstra
2025-02-06 11:54   ` Masami Hiramatsu
2025-02-06 12:13     ` Peter Zijlstra [this message]
2025-02-06 12:33       ` Peter Zijlstra
2025-02-06 13:25         ` Haiyue Wang
2025-02-07 10:09           ` Peter Zijlstra
2025-02-06 23:59         ` Masami Hiramatsu
2025-02-10 22:30           ` Steven Rostedt
2025-02-11 10:09             ` Peter Zijlstra
2025-02-11 15:50               ` Steven Rostedt
2025-02-12 16:52                 ` Sami Tolvanen
2025-02-13 10:08                   ` Peter Zijlstra
2025-02-13 10:25                     ` Haiyue Wang
2025-02-13 10:40                       ` Peter Zijlstra
2025-02-13 10:50                         ` Haiyue Wang
2025-02-13 10:26                     ` Peter Zijlstra
2025-02-13 13:35                       ` Masami Hiramatsu
2025-02-13  0:03                 ` Masami Hiramatsu
2025-02-06 18:19 ` Gabriel de Perthuis

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=20250206121328.GN7145@noisy.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=g2p.code@gmail.com \
    --cc=haiyuewa@163.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=samitolvanen@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@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 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.