From: Peter Zijlstra <peterz@infradead.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH 3/4] sched: Pull preemption disablement to __schedule() caller
Date: Wed, 4 Feb 2015 18:48:45 +0100 [thread overview]
Message-ID: <20150204174845.GE5029@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20150204173152.GA24000@lerouge>
On Wed, Feb 04, 2015 at 06:31:57PM +0100, Frederic Weisbecker wrote:
> > In any case; if we make __schedule() noinline (I think that might make
> > sense) that function call would itself imply the compiler barrier and
> > something like:
> >
> > __preempt_count_add(PREEMPT_ACTIVE + PREEMPT_CHECK_OFFSET);
> > __schedule();
> > __preempt_count_sub(PREEMPT_ACTIVE + PREEMPT_CHECK_OFFSET);
> >
> > Would actually be safe/correct.
> >
> > As it stands I think __schedule() would fail the GCC inline static
> > criteria for being too large, but you never know, noinline guarantees it
> > will not.
>
> Right, although relying only on __schedule() as a function call is perhaps
> error-prone in case we add things in preempt_schedule*() APIs later, before
> the call to __schedule(), that need the preempt count to be visible.
>
> I can create preempt_active_enter() / preempt_active_exit() that take care
> of the preempt op and the barrier() for example.
Sure, like that exception_enter() in preempt_schedule_context() for
instance?
next prev parent reply other threads:[~2015-02-04 17:48 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-28 0:24 [PATCH 0/4] sched: schedule/preempt optimizations and cleanups Frederic Weisbecker
2015-01-28 0:24 ` [PATCH 1/4] sched: Pull resched loop to __schedule() callers Frederic Weisbecker
2015-02-04 14:36 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2015-01-28 0:24 ` [RFC PATCH 2/4] sched: Use traced preempt count operations to toggle PREEMPT_ACTIVE Frederic Weisbecker
2015-01-28 1:42 ` Steven Rostedt
2015-01-28 13:59 ` Frederic Weisbecker
2015-01-28 15:04 ` Steven Rostedt
2015-01-28 15:42 ` Peter Zijlstra
2015-02-02 17:22 ` Frederic Weisbecker
2015-01-28 0:24 ` [PATCH 3/4] sched: Pull preemption disablement to __schedule() caller Frederic Weisbecker
2015-01-28 15:50 ` Peter Zijlstra
2015-02-02 17:53 ` Frederic Weisbecker
2015-02-03 10:53 ` Peter Zijlstra
2015-02-04 17:31 ` Frederic Weisbecker
2015-02-04 17:48 ` Peter Zijlstra [this message]
2015-01-28 0:24 ` [RFC PATCH 4/4] sched: Account PREEMPT_ACTIVE context as atomic Frederic Weisbecker
2015-01-28 15:46 ` Peter Zijlstra
2015-02-02 17:29 ` 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=20150204174845.GE5029@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.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.