From: Peter Zijlstra <peterz@infradead.org>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Mel Gorman <mgorman@suse.de>,
Michal Hocko <mhocko@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"Paul E . McKenney" <paulmck@kernel.org>,
Ingo Molnar <mingo@redhat.com>, Michal Hocko <mhocko@suse.com>
Subject: Re: [RFC PATCH 1/7] static_call/x86: Add __static_call_returnl0()
Date: Tue, 10 Nov 2020 11:06:35 +0100 [thread overview]
Message-ID: <20201110100635.GB2594@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20201110005609.40989-2-frederic@kernel.org>
On Tue, Nov 10, 2020 at 01:56:03AM +0100, Frederic Weisbecker wrote:
> diff --git a/include/linux/static_call.h b/include/linux/static_call.h
> index 695da4c9b338..055544793430 100644
> --- a/include/linux/static_call.h
> +++ b/include/linux/static_call.h
> @@ -136,6 +136,9 @@ extern void arch_static_call_transform(void *site, void *tramp, void *func, bool
>
> #ifdef CONFIG_HAVE_STATIC_CALL_INLINE
>
> +extern int __static_call_return0(void);
> +extern long __static_call_returnl0(void);
> +
> extern int __init static_call_init(void);
>
> struct static_call_mod {
> @@ -187,6 +190,9 @@ extern int static_call_text_reserved(void *start, void *end);
>
> #elif defined(CONFIG_HAVE_STATIC_CALL)
>
> +extern int __static_call_return0(void);
> +extern long __static_call_returnl0(void);
> +
> static inline int static_call_init(void) { return 0; }
>
> struct static_call_key {
> @@ -234,6 +240,9 @@ static inline int static_call_text_reserved(void *start, void *end)
>
> #else /* Generic implementation */
>
> +static inline int __static_call_return0(void) { return 0; }
> +static inline long __static_call_returnl0(void) { return 0; }
> +
> static inline int static_call_init(void) { return 0; }
>
> struct static_call_key {
> diff --git a/kernel/static_call.c b/kernel/static_call.c
> index 84565c2a41b8..3cb371e71be6 100644
> --- a/kernel/static_call.c
> +++ b/kernel/static_call.c
> @@ -438,6 +438,16 @@ int __init static_call_init(void)
> }
> early_initcall(static_call_init);
>
> +int __static_call_return0(void)
> +{
> + return 0;
> +}
> +
> +long __static_call_returnl0(void)
> +{
> + return 0;
> +}
> +
> #ifdef CONFIG_STATIC_CALL_SELFTEST
>
> static int func_a(int x)
So yes, we need the out of line copy, but why do we need the int/long
variants?
AFAICT we only need the long version and can cast it to whatever we need
(provided the return value is no bigger than long).
next prev parent reply other threads:[~2020-11-10 10:06 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 0:56 [RFC PATCH 0/7] preempt: Tune preemption flavour on boot v3 Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 1/7] static_call/x86: Add __static_call_returnl0() Frederic Weisbecker
2020-11-10 9:55 ` Peter Zijlstra
2020-11-10 10:13 ` Peter Zijlstra
2020-11-10 13:42 ` Frederic Weisbecker
2020-11-10 13:53 ` Peter Zijlstra
2020-11-10 13:24 ` Frederic Weisbecker
2020-11-10 10:06 ` Peter Zijlstra [this message]
2020-11-10 0:56 ` [RFC PATCH 2/7] static_call: Pull some static_call declarations to the type headers Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 3/7] preempt: Introduce CONFIG_PREEMPT_DYNAMIC Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 4/7] preempt/dynamic: Provide cond_resched() and might_resched() static calls Frederic Weisbecker
2020-11-10 10:39 ` Peter Zijlstra
2020-11-10 10:48 ` Peter Zijlstra
2021-01-18 13:58 ` Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 5/7] preempt/dynamic: Provide preempt_schedule[_notrace]() " Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 6/7] preempt/dynamic: Provide irqentry_exit_cond_resched() static call Frederic Weisbecker
2020-11-10 10:32 ` Peter Zijlstra
2020-11-10 13:45 ` Frederic Weisbecker
2020-11-10 0:56 ` [RFC PATCH 7/7] preempt/dynamic: Support dynamic preempt with preempt= boot option Frederic Weisbecker
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=20201110100635.GB2594@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=frederic@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mhocko@kernel.org \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=tglx@linutronix.de \
/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®