From: Rik van Riel <riel@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul Turner <pjt@google.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
jmario@redhat.com, Peter Anvin <hpa@zytor.com>,
dzickus@redhat.com, Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] sched,x86: optimize switch_mm for multi-threaded workloads
Date: Wed, 31 Jul 2013 21:58:16 -0400 [thread overview]
Message-ID: <51F9C0B8.9000707@redhat.com> (raw)
In-Reply-To: <CA+55aFwTNQFFJbeP4bYuMBREq=n6GU2vV71ftr_7OnE6SK5OSw@mail.gmail.com>
On 07/31/2013 08:41 PM, Linus Torvalds wrote:
> On Wed, Jul 31, 2013 at 4:14 PM, Paul Turner <pjt@google.com> wrote:
>> We attached the following explanatory comment to our version of the patch:
>>
>> /*
>> * In the common case (two user threads sharing mm
>> * switching) the bit will be set; avoid doing a write
>> * (via atomic test & set) unless we have to. This is
>> * safe, because no other CPU ever writes to our bit
>> * in the mask, and interrupts are off (so we can't
>> * take a TLB IPI here.) If we don't do this, then
>> * switching threads will pingpong the cpumask
>> * cacheline.
>> */
>
> So as mentioned, the "interrupts will be off" is actually dubious.
> It's true for the context switch case, but not for the activate_mm().
>
> However, as Rik points out, activate_mm() is different in that we
> shouldn't have any preexisting MMU state anyway. And besides, that
> should never trigger the "prev == next" case.
>
> But it does look a bit messy, and even your comment is a bit
> misleading (it might make somebody think that all of switch_mm() is
> protected from interrupts)
> .
> Anyway, I'm perfectly ok with the patch itself, but I just wanted to
> make sure people had thought about these things.
Would you like me to document the things we found in the comment,
and resend a patch, or is the patch good as-is?
--
All rights reversed
next prev parent reply other threads:[~2013-08-01 1:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-31 21:43 [PATCH] sched,x86: optimize switch_mm for multi-threaded workloads Rik van Riel
2013-07-31 21:46 ` Paul Turner
2013-07-31 22:07 ` Linus Torvalds
2013-07-31 22:16 ` Rik van Riel
[not found] ` <CA+55aFwj+6P4y8MgGTGbiK_EtfY7LJ_bL_7k9zFYLx4S8F0rJQ@mail.gmail.com>
2013-07-31 22:39 ` Rik van Riel
[not found] ` <CA+55aFxKSEHSkdsCkTvjwwo4MnEpN0TwJrek2jd1QJCyUTb-=Q@mail.gmail.com>
2013-07-31 23:12 ` Rik van Riel
2013-07-31 23:14 ` Paul Turner
2013-08-01 0:41 ` Linus Torvalds
2013-08-01 1:58 ` Rik van Riel [this message]
2013-08-01 2:14 ` Linus Torvalds
2013-08-01 2:14 ` [PATCH -v2] " Rik van Riel
2013-08-01 2:25 ` Linus Torvalds
2013-08-01 7:04 ` Ingo Molnar
2013-08-02 9:07 ` [tip:sched/core] sched/x86: Optimize switch_mm() " tip-bot for Rik van Riel
2013-08-02 9:12 ` Ingo Molnar
2013-08-02 12:44 ` Joe Mario
2013-08-03 1:18 ` Greg KH
2013-08-01 15:37 ` [PATCH] sched,x86: optimize switch_mm " Jörn Engel
2013-08-01 17:45 ` Linus Torvalds
2013-08-01 17:54 ` Jörn Engel
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=51F9C0B8.9000707@redhat.com \
--to=riel@redhat.com \
--cc=dzickus@redhat.com \
--cc=hpa@zytor.com \
--cc=jmario@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pjt@google.com \
--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.