linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Erik Bosman <ebn310@few.vu.nl>, Ingo Molnar <mingo@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Paul Mackerras <paulus@samba.org>,
	Kees Cook <keescook@chromium.org>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Subject: Re: [RFC 5/5] x86,perf: Only allow rdpmc if a perf_event is mapped
Date: Mon, 20 Oct 2014 10:39:48 -0700	[thread overview]
Message-ID: <CALCETrW5M+p4FZ6YPdNVVtXKomkEYRWyNpGGB1ZPbJMkQgU50g@mail.gmail.com> (raw)
In-Reply-To: <CALCETrVHw54Yc0qiTUP7+SiWK4Ch362m=jO8szCkpt8U7_h_dA@mail.gmail.com>

On Mon, Oct 20, 2014 at 9:49 AM, Andy Lutomirski <luto@amacapital.net> wrote:
> On Mon, Oct 20, 2014 at 1:33 AM, Peter Zijlstra <peterz@infradead.org> wrote:
>> On Sun, Oct 19, 2014 at 03:57:54PM -0700, Andy Lutomirski wrote:
>>> > Maybe, but at that point we commit to yet another ABI... I'd rather just
>>> > put a 'sane' implementation in a library or so.
>>>
>>> This cuts both ways, though.  For vdso timekeeping, the underlying
>>> data structure has changed repeatedly, sometimes to add features, and
>>> sometimes for performance, and the vdso has done a good job insulating
>>> userspace from it.  (In fact, until 3.16, even the same exact kernel
>>> version couldn't be relied on to have the same data structure with
>>> different configs, and even now, no one really wants to teach user
>>> libraries how to parse the pvclock data structures.)
>>
>> Fair enough, but as it stands we've already committed to the data
>> structure exposed to userspace.
>
> True.
>
> OTOH, if a vdso function gets added, a few releases go by, and all the
> userspace tools get updated, then the old data structure could be
> dropped if needed by clearing cap_user_rdpmc.
>
> Anyway, this is so far out of scope for the current project that I'm
> going to ignore it.

OK, I lied.

I haven't tested it, but it looks like any existing users of
cap_user_rdpmc may have serious issues.  That flag is set to 1 for
essentially all perf_events on x86, even events that aren't part of
the x86_pmu.  Since the default .event_idx callback doesn't return
zero, lots of other events will appear to be rdpmcable.  This includes
the AMD uncore pmu, which looks like it actually supports rdpmc, but
hwc->idx seems to be missing an offset.

If this is the case, then user code can't reliably use the userpage
rdpmc mechanism, so maybe it should be deprecated (or at least get a
new flag bit).

--Andy

  reply	other threads:[~2014-10-20 17:40 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-14 22:57 [RFC 0/5] CR4 handling improvements Andy Lutomirski
2014-10-14 22:57 ` [RFC 1/5] x86: Clean up cr4 manipulation Andy Lutomirski
2014-10-16  8:16   ` Peter Zijlstra
2014-10-16 11:18     ` Borislav Petkov
2014-10-16 11:29       ` Borislav Petkov
2014-10-16 15:32         ` Andy Lutomirski
2014-10-16 15:47           ` Borislav Petkov
2014-10-14 22:57 ` [RFC 2/5] x86: Store a per-cpu shadow copy of CR4 Andy Lutomirski
2014-10-16  8:26   ` Peter Zijlstra
2014-10-16 11:49   ` Borislav Petkov
2014-10-16 15:30     ` Andy Lutomirski
2014-10-14 22:57 ` [RFC 3/5] x86: Add a comment clarifying LDT context switching Andy Lutomirski
2014-10-16 15:49   ` Borislav Petkov
2014-10-16 16:21     ` Andy Lutomirski
2014-10-21  5:41       ` Borislav Petkov
2014-10-21  5:44         ` Andy Lutomirski
2014-10-21  6:05           ` Borislav Petkov
2014-10-14 22:57 ` [RFC 4/5] perf: Add pmu callbacks to track event mapping and unmapping Andy Lutomirski
2014-10-14 22:57 ` [RFC 5/5] x86,perf: Only allow rdpmc if a perf_event is mapped Andy Lutomirski
2014-10-16  8:42   ` Peter Zijlstra
2014-10-16 15:37     ` Andy Lutomirski
2014-10-16 15:57     ` Borislav Petkov
2014-10-17  0:00   ` Andy Lutomirski
2014-10-19 20:23     ` Andy Lutomirski
2014-10-19 21:33       ` Peter Zijlstra
2014-10-19 22:05         ` Andy Lutomirski
2014-10-19 22:20           ` Peter Zijlstra
2014-10-19 22:57             ` Andy Lutomirski
2014-10-20  8:33               ` Peter Zijlstra
2014-10-20 16:49                 ` Andy Lutomirski
2014-10-20 17:39                   ` Andy Lutomirski [this message]
2014-10-21  8:59                     ` Peter Zijlstra
2014-10-19 21:35     ` Peter Zijlstra
2014-10-20  0:08       ` Andy Lutomirski
2014-10-20  8:48         ` Peter Zijlstra
2014-10-20  9:24           ` Martin Schwidefsky
2014-10-20 10:51           ` Hendrik Brueckner
2014-10-21  9:14             ` Peter Zijlstra
2014-10-21 15:52               ` Andy Lutomirski
2014-10-21  4:06 ` [RFC 0/5] CR4 handling improvements Vince Weaver
2014-10-21  4:28   ` Andy Lutomirski
2014-10-21 15:00     ` Vince Weaver
2014-10-21 16:04       ` Peter Zijlstra
2014-10-21 17:05         ` Vince Weaver
2014-10-23 11:42           ` Peter Zijlstra
2014-10-24 12:41             ` Vince Weaver
2014-10-24 22:14               ` Andy Lutomirski

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=CALCETrW5M+p4FZ6YPdNVVtXKomkEYRWyNpGGB1ZPbJMkQgU50g@mail.gmail.com \
    --to=luto@amacapital.net \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=aarcange@redhat.com \
    --cc=acme@kernel.org \
    --cc=ebn310@few.vu.nl \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.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).