From: Frederic Weisbecker <frederic@kernel.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, ardb@kernel.org,
catalin.marinas@arm.com, juri.lelli@redhat.com,
linux-kernel@vger.kernel.org, mingo@redhat.com,
peterz@infradead.org, will@kernel.org
Subject: Re: [PATCH 2/6] sched/preempt: refactor sched_dynamic_update()
Date: Wed, 2 Feb 2022 17:01:44 +0100 [thread overview]
Message-ID: <20220202160144.GA458420@lothringen> (raw)
In-Reply-To: <YfqftfWSJfuH60Mi@FVFF77S0Q05N>
On Wed, Feb 02, 2022 at 03:13:57PM +0000, Mark Rutland wrote:
> Hi,
>
> I'm looking at what I need to do to rebase/repost this atop v5.17-rc2, and I
> realised I need your S-o-B to take your suggestion below.
>
> On Fri, Dec 10, 2021 at 04:13:43PM +0100, Frederic Weisbecker wrote:
> > On Tue, Nov 09, 2021 at 05:24:04PM +0000, Mark Rutland wrote:
> > > Currently sched_dynamic_update needs to open-code the enabled/disabled
> > > function names for each preemption model it supoprts, when in practice
> > > this is a boolean enabled/disabled state for each function.
> > >
> > > Make this clearer and avoid repetition by defining the enabled/disabled
> > > states at the function definition, and using helper macros to peform the
> > > static_call_update(). Where x86 currently overrides the enabled
> > > function, it is made to provide both the enabled and disabled states for
> > > consistency, with defaults provided by the core code otherwise.
>
> > > -#define __preempt_schedule_notrace_func preempt_schedule_notrace_thunk
> > > +#define preempt_schedule_notrace_dynamic_enabled preempt_schedule_notrace_thunk
> > > +#define preempt_schedule_notrace_dynamic_disabled NULL
> >
> > I'm worried about un-greppable macro definitions like this.
> I assume you mean that it's hard to go from:
>
> preempt_dynamic_enable(preempt_schedule_notrace);
>
> ... to this, because the `_dynamic_enabled` or `_dynamic_disabled` part gets
> token-pasted on?
Right.
>
> The above will show up in a grep for `preempt_schedule_notrace`, but I agree
> it's not necessarily ideal, especially if grepping for an exact match.
>
> > Also this enable/disable switch look like a common pattern on static call so
> > how about moving that logic to static call itself? As in below (only
> > build-tested):
>
> Sure; if others also prefer that I'm more than happy to build atop.
>
> Can I have your Signed-off-by for that, or can you post that as its own patch?
Sure, here is a better split and tested version here:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
static_call/toggle
I was hoping to make a default backend based on static keys to implement these
toggeable static calls, but I had some issues on the way, although I can't
remember exactly which.
So eventually I don't know if this stuff will be useful for you....
Well, I guess this can still ease a wrapper like:
preempt_dynamic_enable(sym)
---> CONFIG_STATIC_CALL=y? -----> static_call_enable(sym)
else
---> CONFIG_STATIC_KEY=y? -----> static_key_enable(sym)
Thanks.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Frederic Weisbecker <frederic@kernel.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, ardb@kernel.org,
catalin.marinas@arm.com, juri.lelli@redhat.com,
linux-kernel@vger.kernel.org, mingo@redhat.com,
peterz@infradead.org, will@kernel.org
Subject: Re: [PATCH 2/6] sched/preempt: refactor sched_dynamic_update()
Date: Wed, 2 Feb 2022 17:01:44 +0100 [thread overview]
Message-ID: <20220202160144.GA458420@lothringen> (raw)
In-Reply-To: <YfqftfWSJfuH60Mi@FVFF77S0Q05N>
On Wed, Feb 02, 2022 at 03:13:57PM +0000, Mark Rutland wrote:
> Hi,
>
> I'm looking at what I need to do to rebase/repost this atop v5.17-rc2, and I
> realised I need your S-o-B to take your suggestion below.
>
> On Fri, Dec 10, 2021 at 04:13:43PM +0100, Frederic Weisbecker wrote:
> > On Tue, Nov 09, 2021 at 05:24:04PM +0000, Mark Rutland wrote:
> > > Currently sched_dynamic_update needs to open-code the enabled/disabled
> > > function names for each preemption model it supoprts, when in practice
> > > this is a boolean enabled/disabled state for each function.
> > >
> > > Make this clearer and avoid repetition by defining the enabled/disabled
> > > states at the function definition, and using helper macros to peform the
> > > static_call_update(). Where x86 currently overrides the enabled
> > > function, it is made to provide both the enabled and disabled states for
> > > consistency, with defaults provided by the core code otherwise.
>
> > > -#define __preempt_schedule_notrace_func preempt_schedule_notrace_thunk
> > > +#define preempt_schedule_notrace_dynamic_enabled preempt_schedule_notrace_thunk
> > > +#define preempt_schedule_notrace_dynamic_disabled NULL
> >
> > I'm worried about un-greppable macro definitions like this.
> I assume you mean that it's hard to go from:
>
> preempt_dynamic_enable(preempt_schedule_notrace);
>
> ... to this, because the `_dynamic_enabled` or `_dynamic_disabled` part gets
> token-pasted on?
Right.
>
> The above will show up in a grep for `preempt_schedule_notrace`, but I agree
> it's not necessarily ideal, especially if grepping for an exact match.
>
> > Also this enable/disable switch look like a common pattern on static call so
> > how about moving that logic to static call itself? As in below (only
> > build-tested):
>
> Sure; if others also prefer that I'm more than happy to build atop.
>
> Can I have your Signed-off-by for that, or can you post that as its own patch?
Sure, here is a better split and tested version here:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
static_call/toggle
I was hoping to make a default backend based on static keys to implement these
toggeable static calls, but I had some issues on the way, although I can't
remember exactly which.
So eventually I don't know if this stuff will be useful for you....
Well, I guess this can still ease a wrapper like:
preempt_dynamic_enable(sym)
---> CONFIG_STATIC_CALL=y? -----> static_call_enable(sym)
else
---> CONFIG_STATIC_KEY=y? -----> static_key_enable(sym)
Thanks.
next prev parent reply other threads:[~2022-02-02 16:03 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-09 17:24 [PATCH 0/6] arm64 / sched/preempt: support PREEMPT_DYNAMIC with static keys Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-11-09 17:24 ` [PATCH 1/6] sched/preempt: move PREEMPT_DYNAMIC logic later Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-11-09 17:24 ` [PATCH 2/6] sched/preempt: refactor sched_dynamic_update() Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-12-10 15:13 ` Frederic Weisbecker
2021-12-10 15:13 ` Frederic Weisbecker
2022-02-02 15:13 ` Mark Rutland
2022-02-02 15:13 ` Mark Rutland
2022-02-02 16:01 ` Frederic Weisbecker [this message]
2022-02-02 16:01 ` Frederic Weisbecker
2022-02-02 18:08 ` Mark Rutland
2022-02-02 18:08 ` Mark Rutland
2022-02-03 11:52 ` Frederic Weisbecker
2022-02-03 11:52 ` Frederic Weisbecker
2021-11-09 17:24 ` [PATCH 3/6] sched/preempt: simplify irqentry_exit_cond_resched() callers Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-11-09 17:24 ` [PATCH 4/6] sched/preempt: decouple HAVE_PREEMPT_DYNAMIC from GENERIC_ENTRY Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-11-09 17:24 ` [PATCH 5/6] sched/preempt: add PREEMPT_DYNAMIC using static keys Mark Rutland
2021-11-09 17:24 ` Mark Rutland
2021-12-13 22:05 ` Frederic Weisbecker
2021-12-13 22:05 ` Frederic Weisbecker
2022-02-02 15:29 ` Mark Rutland
2022-02-02 15:29 ` Mark Rutland
2022-02-03 22:40 ` Peter Zijlstra
2022-02-03 22:40 ` Peter Zijlstra
2022-02-02 23:21 ` Frederic Weisbecker
2022-02-02 23:21 ` Frederic Weisbecker
2022-02-03 9:51 ` Mark Rutland
2022-02-03 9:51 ` Mark Rutland
2022-02-03 11:34 ` Frederic Weisbecker
2022-02-03 11:34 ` Frederic Weisbecker
2022-02-03 12:27 ` Mark Rutland
2022-02-03 12:27 ` Mark Rutland
2021-11-09 17:24 ` [PATCH 6/6] arm64: support PREEMPT_DYNAMIC Mark Rutland
2021-11-09 17:24 ` Mark Rutland
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=20220202160144.GA458420@lothringen \
--to=frederic@kernel.org \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=juri.lelli@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=will@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.