From: Borislav Petkov <bp@alien8.de>
To: Peter Zijlstra <peterz@infradead.org>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
rostedt@goodmis.org, mhiramat@kernel.org, bristot@redhat.com,
jbaron@akamai.com, torvalds@linux-foundation.org,
tglx@linutronix.de, mingo@kernel.org, namit@vmware.com,
hpa@zytor.com, luto@kernel.org, ard.biesheuvel@linaro.org,
jpoimboe@redhat.com
Subject: Re: [RESEND][PATCH v3 09/17] x86/static_call: Add out-of-line static call implementation
Date: Thu, 26 Mar 2020 15:57:09 +0100 [thread overview]
Message-ID: <20200326145709.GB11398@zn.tnic> (raw)
In-Reply-To: <20200324142245.819003994@infradead.org>
On Tue, Mar 24, 2020 at 02:56:12PM +0100, Peter Zijlstra wrote:
> +static void __static_call_transform(void *insn, u8 opcode, void *func)
> +{
> + const void *code = text_gen_insn(opcode, (long)insn, (long)func);
> +
> + if (WARN_ONCE(*(u8 *)insn != opcode,
> + "unexpected static call insn opcode 0x%x at %pS\n",
> + opcode, insn))
> + return;
> +
> + if (memcmp(insn, code, CALL_INSN_SIZE) == 0)
> + return;
> +
> + text_poke_bp(insn, code, CALL_INSN_SIZE, NULL);
Right, this is working with CALL_INSN_SIZE but ...
> +}
> +
> +void arch_static_call_transform(void *site, void *tramp, void *func)
> +{
> + mutex_lock(&text_mutex);
> +
> + if (tramp)
> + __static_call_transform(tramp, JMP32_INSN_OPCODE, func);
... it gets called with JMP32_INSN_OPCODE too. I mean, both lengths are
equal and all - it is just a bit confusing at a first glance. Maybe slap
a small comment that it is ok.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
next prev parent reply other threads:[~2020-03-26 14:57 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-24 13:56 [RESEND][PATCH v3 00/17] Add static_call() Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 01/17] notifier: Fix broken error handling pattern Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 02/17] module: Fix up module_notifier return values Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 03/17] module: Properly propagate MODULE_STATE_COMING failure Peter Zijlstra
2020-03-25 17:35 ` Jessica Yu
2020-03-27 4:51 ` Josh Poimboeuf
2020-03-27 12:04 ` Miroslav Benes
2020-03-24 13:56 ` [RESEND][PATCH v3 04/17] jump_label,module: Fix module lifetime for __jump_label_mod_text_reserved Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 05/17] compiler.h: Make __ADDRESSABLE() symbol truly unique Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 06/17] static_call: Add basic static call infrastructure Peter Zijlstra
2020-03-26 16:42 ` Nadav Amit
2020-03-26 17:01 ` Peter Zijlstra
2020-03-26 18:09 ` Nadav Amit
2020-03-26 18:28 ` Peter Zijlstra
2020-03-26 19:02 ` Nadav Amit
2020-03-26 19:13 ` Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 07/17] static_call: Add inline " Peter Zijlstra
2020-03-26 15:54 ` Borislav Petkov
2020-03-24 13:56 ` [RESEND][PATCH v3 08/17] static_call: Avoid kprobes on inline static_call()s Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 09/17] x86/static_call: Add out-of-line static call implementation Peter Zijlstra
2020-03-26 14:57 ` Borislav Petkov [this message]
2020-04-06 1:08 ` Fangrui Song
2020-04-06 11:04 ` Peter Zijlstra
2020-04-06 18:29 ` Nick Desaulniers
2020-03-24 13:56 ` [RESEND][PATCH v3 10/17] x86/static_call: Add inline static call implementation for x86-64 Peter Zijlstra
2020-03-26 15:17 ` Borislav Petkov
2020-03-26 16:06 ` Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 11/17] static_call: Simple self-test Peter Zijlstra
2020-03-26 15:44 ` Borislav Petkov
2020-03-26 17:08 ` Peter Zijlstra
2020-03-26 17:33 ` Borislav Petkov
2020-03-24 13:56 ` [RESEND][PATCH v3 12/17] tracepoint: Optimize using static_call() Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 13/17] x86/alternatives: Teach text_poke_bp() to emulate RET Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 14/17] static_call: Add static_cond_call() Peter Zijlstra
2020-03-24 16:14 ` Linus Torvalds
2020-03-24 16:22 ` Andy Lutomirski
2020-03-24 16:33 ` Linus Torvalds
2020-03-24 17:03 ` Peter Zijlstra
2020-03-25 18:13 ` Peter Zijlstra
2020-03-25 18:26 ` Linus Torvalds
2020-03-25 19:34 ` hpa
2020-03-25 20:52 ` Linus Torvalds
2020-03-25 22:07 ` Peter Zijlstra
2020-03-24 16:54 ` Peter Zijlstra
2020-03-26 23:37 ` Rasmus Villemoes
2020-03-27 10:08 ` Peter Zijlstra
2020-03-27 13:25 ` Rasmus Villemoes
2020-03-24 13:56 ` [RESEND][PATCH v3 15/17] static_call: Handle tail-calls Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 16/17] static_call: Allow early init Peter Zijlstra
2020-03-24 13:56 ` [RESEND][PATCH v3 17/17] x86/perf, static_call: Optimize x86_pmu methods Peter Zijlstra
2020-03-25 17:49 ` [RESEND][PATCH v3 00/17] Add static_call() Peter Zijlstra
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=20200326145709.GB11398@zn.tnic \
--to=bp@alien8.de \
--cc=ard.biesheuvel@linaro.org \
--cc=bristot@redhat.com \
--cc=hpa@zytor.com \
--cc=jbaron@akamai.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=namit@vmware.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®