From: Mikael Pettersson <mikpe@csd.uu.se>
To: Andrew Morton <akpm@osdl.org>, Andrea Arcangeli <andrea@cpushare.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.6.12-rc5-mm1
Date: Thu, 26 May 2005 10:57:27 +0200 [thread overview]
Message-ID: <17045.36727.602005.757948@alkaid.it.uu.se> (raw)
In-Reply-To: <20050525134933.5c22234a.akpm@osdl.org>
2.6.12-rc5-mm1 includes Andrea's seccomp-disable-tsc patch,
which I believe is broken on SMP. In process.c we find:
/*
+ * This function selects if the context switch from prev to next
+ * has to tweak the TSC disable bit in the cr4.
+ */
+static void disable_tsc(struct thread_info *prev,
+ struct thread_info *next)
+{
+ if (unlikely(has_secure_computing(prev) ||
+ has_secure_computing(next))) {
+ /* slow path here */
+ if (has_secure_computing(prev) &&
+ !has_secure_computing(next)) {
+ clear_in_cr4(X86_CR4_TSD);
+ } else if (!has_secure_computing(prev) &&
+ has_secure_computing(next))
+ set_in_cr4(X86_CR4_TSD);
+ }
+}
which it calls from __switch_to().
The problem is that {set,clear}_in_cr4() both update a single
global mmu_cr4_features variable, which is asynchronously written
to all CPUs by {,__}flush_tlb_all(). Hence, the CR4.TSD setting
is at best probabilistic.
I spotted this because perfctr used to flip CR4.PCE in __switch_to()
ages ago, but I had to abandon that when kernel 2.3.40 changed to
the current scheme with a global mmu_cr4_features.
(Another reason was that CR4 writes were and still are very slow.)
/Mikael
next prev parent reply other threads:[~2005-05-26 8:57 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-25 20:49 2.6.12-rc5-mm1 Andrew Morton
2005-05-25 21:37 ` 2.6.12-rc5-mm1 Alexandre Buisse
2005-05-25 21:51 ` 2.6.12-rc5-mm1 Brice Goglin
2005-05-25 21:58 ` 2.6.12-rc5-mm1 Brice Goglin
2005-05-26 5:29 ` 2.6.12-rc5-mm1 Yani Ioannou
2005-05-25 22:57 ` 2.6.12-rc5-mm1 Jesper Juhl
2005-05-26 1:17 ` 2.6.12-rc5-mm1 Matthew Dobson
2005-05-26 2:43 ` 2.6.12-rc5-mm1 Ed Tomlinson
2005-05-26 3:41 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 7:43 ` 2.6.12-rc5-mm1 J.A. Magallon
2005-05-26 7:58 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 13:54 ` 2.6.12-rc5-mm1 Rafael J. Wysocki
2005-05-26 20:45 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 21:04 ` 2.6.12-rc5-mm1 Lee Revell
2005-05-26 21:07 ` 2.6.12-rc5-mm1 Chris Wright
2005-05-27 10:29 ` 2.6.12-rc5-mm1 Rafael J. Wysocki
2005-05-27 17:38 ` 2.6.12-rc5-mm1 Chen, Kenneth W
2005-05-27 22:32 ` 2.6.12-rc5-mm1 J.A. Magallon
2005-05-26 21:39 ` 2.6.12-rc5-mm1 J.A. Magallon
2005-05-26 7:44 ` 2.6.12-rc5-mm1 J.A. Magallon
2005-05-26 7:52 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 8:57 ` Mikael Pettersson [this message]
2005-05-26 13:04 ` 2.6.12-rc5-mm1 Andrea Arcangeli
2005-05-26 19:15 ` 2.6.12-rc5-mm1 Mikael Pettersson
2005-05-26 22:22 ` 2.6.12-rc5-mm1 Andrea Arcangeli
2005-05-27 2:47 ` 2.6.12-rc5-mm1 Andrea Arcangeli
2005-05-27 21:13 ` 2.6.12-rc5-mm1 Arnd Bergmann
2005-05-28 7:07 ` 2.6.12-rc5-mm1 Christoph Hellwig
2005-06-29 13:42 ` 2.6.12-rc5-mm1 Arnd Bergmann
2005-06-29 16:22 ` Xtensa syscalls (Was: Re: 2.6.12-rc5-mm1) Christian Zankel
2005-06-29 16:29 ` Christoph Hellwig
2005-06-29 16:47 ` Andrew Morton
2005-06-29 19:11 ` Arnd Bergmann
2005-05-27 22:21 ` Kill signed chars !!! [was Re: 2.6.12-rc5-mm1] J.A. Magallon
2005-05-27 23:46 ` Jesper Juhl
2005-06-21 12:54 ` Kill signed chars !!! => PPC uses unsigned chars Willy Tarreau
2005-06-21 14:23 ` cutaway
2005-06-21 21:13 ` J.A. Magallon
2005-05-29 14:26 ` 2.6.12-rc5-mm1: fork connector doesn't compile with gcc 2.95 Adrian Bunk
2005-05-29 14:38 ` 2.6.12-rc5-mm1: drivers/char/tpm/ compile errors " Adrian Bunk
2005-05-29 14:38 ` 2.6.12-rc5-mm1: drivers/dlm/: compile error " Adrian Bunk
2005-05-29 14:43 ` Matthias-Christian Ott
2005-05-29 15:00 ` Adrian Bunk
2005-05-29 14:45 ` 2.6.12-rc5-mm1: drivers/media/dvb/dvb-usb/a800.c compile error Adrian Bunk
2005-05-30 8:29 ` Patrick Boettcher
2005-05-30 9:14 ` Johannes Stezenbach
2005-05-30 9:30 ` Patrick Boettcher
2005-05-29 15:12 ` 2.6.12-rc5-mm1: drivers/usb/atm/speedtch.c: gcc 2.95 " Adrian Bunk
2005-05-30 7:45 ` Duncan Sands
2005-05-30 8:04 ` Andrew Morton
2005-05-30 8:16 ` Duncan Sands
2005-05-30 13:52 ` 2.6.12-rc5-mm1 Stefano Rivoir
2005-05-30 19:50 ` [-mm patch] drivers/message/i2o/device.c: i2o_parm_issue has to be global Adrian Bunk
2005-05-31 12:00 ` [PATCH 2.6.12-rc5-mm1] m32r: Insert set_tsk_need_resched() to cpu_idle() (was Re: 2.6.12-rc5-mm1) Hirokazu Takata
-- strict thread matches above, loose matches on Subject: below --
2005-05-26 6:37 2.6.12-rc5-mm1 Martin J. Bligh
2005-05-26 6:40 ` 2.6.12-rc5-mm1 Martin J. Bligh
2005-05-26 6:47 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 7:05 ` 2.6.12-rc5-mm1 Martin J. Bligh
2005-05-26 7:14 ` 2.6.12-rc5-mm1 Martin J. Bligh
2005-05-26 7:23 ` 2.6.12-rc5-mm1 Martin J. Bligh
2005-05-26 7:24 ` 2.6.12-rc5-mm1 Andrew Morton
2005-05-26 11:09 ` 2.6.12-rc5-mm1 Roman Zippel
2005-05-26 14:48 ` 2.6.12-rc5-mm1 Steven Cole
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=17045.36727.602005.757948@alkaid.it.uu.se \
--to=mikpe@csd.uu.se \
--cc=akpm@osdl.org \
--cc=andrea@cpushare.com \
--cc=linux-kernel@vger.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