From: Andrew Lutomirski <luto@mit.edu>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <andi@firstfloor.org>,
x86@kernel.org, linux-kernel@vger.kernel.org,
Ingo Molnar <mingo@elte.hu>,
Linus Torvalds <torvalds@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <eric.dumazet@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Borislav Petkov <bp@amd64.org>
Subject: Re: [PATCH v4 0/6] Micro-optimize vclock_gettime
Date: Mon, 16 May 2011 18:17:29 -0400 [thread overview]
Message-ID: <BANLkTinVnr1ZM2wOxuH-rHZGh+_SBWT-+g@mail.gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1105162345110.3078@ionos>
On Mon, May 16, 2011 at 5:53 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Mon, 16 May 2011, Andi Kleen wrote:
>> Andrew Lutomirski <luto@mit.edu> writes:
>> > Longer term, it would be nice to mark the vsyscall page NX. That
>> > involves a few things:
>>
>> Why NX? What would make sense is to call the VDSO from it.
>> The problem is that the vDSO is randomized and there's no good memory
>> location to store the pointer to it.
>>
>> The real reason for all this dance is to have some less non randomized
>> code around. What I implemented back then was instead code to patch out
>> the SYSCALL in there if not needed to lower the attack surface (not sure
>> if that still works though, but that was the idea). For most cases
>> (TSC/HPET read) it's not needed.
>>
>> Checking: someone removed the code meanwhile.
>
> For a damned good reason.
>
>> > And we won't have a
>> > syscall instruction sitting at a predictable address.
>>
>> The easy way to fix this is to just re-add the patching.
>
> If you can address _all_ reasons why it was removed then we might
> revisit that issue, but that's going to be an interesting patch.
We're now completely offtopic for the RDTSC patches, but do you have
any moral objection to rigging the vsyscall page to generate a fault
and emulating it after a couple years of deprecation? If not, I can
see if I can persuade Uli to take accept a glibc patch to stop calling
it in future static glibc versions.
The long-term cost to the kernel will be a special case (and, compare,
unlikely branch) in whichever fault trap gets used. The best way
might be to use a page full of 0xCC so that an int3 fault (presumably
not a performance-critical path) is taken.
--Andy
next prev parent reply other threads:[~2011-05-16 22:17 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-16 16:00 [PATCH v4 0/6] Micro-optimize vclock_gettime Andy Lutomirski
2011-05-16 16:00 ` [PATCH v4 1/6] x86-64: Clean up vdso/kernel shared variables Andy Lutomirski
2011-05-16 17:23 ` Borislav Petkov
2011-05-16 17:34 ` Andrew Lutomirski
2011-05-16 16:00 ` [PATCH v4 2/6] x86-64: Remove unnecessary barrier in vread_tsc Andy Lutomirski
2011-05-16 16:01 ` [PATCH v4 3/6] x86-64: Don't generate cmov " Andy Lutomirski
2011-05-16 16:01 ` [PATCH v4 4/6] x86-64: vclock_gettime(CLOCK_MONOTONIC) can't ever see nsec < 0 Andy Lutomirski
2011-05-16 16:01 ` [PATCH v4 5/6] x86-64: Move vread_tsc into a new file with sensible options Andy Lutomirski
2011-05-16 16:01 ` [PATCH v4 6/6] x86-64: Turn off -pg and turn on -foptimize-sibling-calls for vDSO Andy Lutomirski
2011-05-16 16:09 ` [PATCH v4 0/6] Micro-optimize vclock_gettime Andi Kleen
2011-05-16 16:25 ` Thomas Gleixner
2011-05-16 16:49 ` Andi Kleen
2011-05-16 17:05 ` Andrew Lutomirski
2011-05-16 20:22 ` Andi Kleen
2011-05-16 21:28 ` Andrew Lutomirski
2011-05-16 21:53 ` Thomas Gleixner
2011-05-16 22:17 ` Andrew Lutomirski [this message]
2011-05-16 22:40 ` Thomas Gleixner
2011-05-17 8:00 ` Ingo Molnar
2011-05-17 11:11 ` Andrew Lutomirski
2011-05-17 11:36 ` Ingo Molnar
2011-05-17 18:31 ` Andy Lutomirski
2011-05-17 19:27 ` Ingo Molnar
2011-05-17 21:31 ` Andi Kleen
2011-05-17 22:59 ` Thomas Gleixner
2011-05-18 3:18 ` Andrew Lutomirski
2011-05-18 7:30 ` Thomas Gleixner
2011-05-18 8:31 ` Ingo Molnar
2011-05-18 11:30 ` Andrew Lutomirski
2011-05-18 12:10 ` Ingo Molnar
2011-05-17 7:56 ` Ingo Molnar
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=BANLkTinVnr1ZM2wOxuH-rHZGh+_SBWT-+g@mail.gmail.com \
--to=luto@mit.edu \
--cc=a.p.zijlstra@chello.nl \
--cc=andi@firstfloor.org \
--cc=bp@amd64.org \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@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;
as well as URLs for NNTP newsgroup(s).