public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Roland Dreier <rdreier@cisco.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Pavel Machek <pavel@ucw.cz>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org,
	Paul Mackerras <paulus@samba.org>,
	Anton Blanchard <anton@samba.org>,
	general@lists.openfabrics.org, akpm@linux-foundation.org,
	torvalds@linux-foundation.org
Subject: Re: [ofa-general] Re: [GIT PULL] please pull ummunotify
Date: Fri, 02 Oct 2009 09:32:00 -0700	[thread overview]
Message-ID: <ada3a61rc3j.fsf@cisco.com> (raw)
In-Reply-To: <20090930094456.GD24621@elte.hu> (Ingo Molnar's message of "Wed, 30 Sep 2009 11:44:56 +0200")


 > Per tracepoint filtering is possible via the perf event patches Li Zefan 
 > has posted to lkml recently, under this subject:
 > 
 >    [PATCH 0/6] perf trace: Add filter support
 > 
 > They are still being worked on but it's very clear that flexible 
 > in-kernel filtering support will be a natural part of the perf event 
 > design in the very near future, so if that alone is your reason not to 
 > use it it would be better if you helped us complete/test the filter 
 > support and use that, instead of a parallel framework.
 > 
 > Or if that's not desirable or not possible, or if there's any other 
 > technical roadblock, i'd like to know the particulars of that.

So I looked a little deeper into this, and I don't think (even with the
filtering extensions) that perf events are directly applicable to this
problem.  The first issue is that, assuming I'm understanding the
comment in perf_event.c:

        /*
         * Raw tracepoint data is a severe data leak, only allow root to
         * have these.
         */

currently tracepoints can only be used by privileged processes.  A key
feature of ummunotify is that ordinary unprivileged processes can use it.

So would it be acceptable to add something like PERF_TYPE_MMU_NOTIFIER
as a way of letting unprivileged userspace get access to just MMU events
for their own process?  Clearly this touches core infrastructure and is
not as simple as just adding two tracepoints.

Then, assuming we have some way to create an "MMU notifier" perf event,
we need a way for userspace to specify which address ranges it would
like events for (I don't think the string filter expression used by
existing trace filtering works, because if userspace is looking at a few
hundred regions, then the size of the filtering expression explodes, and
adding or removing a single range becomes a pain).  So I guess a new
ioctl() to add/remove ranges for MMU_NOTIFIER perf events?

I think filtering is needed, because otherwise events for ranges that
are not of interest are just a waste of resources to generate and
process, and make losing good events because of overflow much more
likely.

We still have the problem of lost events if the mmap buffer overflows,
but userspace should be able to size the buffer so that such events are
rare I guess.

In the end this seems to just take the ummunotify code I have, and make
it be a new type of perf counter instead of a character special device.
I'd actually be OK with that, since having an oddball new char dev
interface is not particularly nice.  But on the other hand just
multiplexing a new type of thing under perf events is not all that much
better.  What do you think?

Thanks,
  Roland

  parent reply	other threads:[~2009-10-02 16:34 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-11  4:38 [GIT PULL] please pull ummunotify Roland Dreier
2009-09-11  5:56 ` KOSAKI Motohiro
2009-09-11  6:03   ` Roland Dreier
2009-09-11  6:11     ` KOSAKI Motohiro
2009-09-11 16:42       ` Gleb Natapov
2009-09-11  6:15     ` Brice Goglin
2009-09-11  6:21       ` KOSAKI Motohiro
2009-09-11  6:22       ` Roland Dreier
2009-09-11  6:40         ` [ofa-general] " Jason Gunthorpe
2009-09-11 16:58           ` Roland Dreier
2009-09-15  7:03             ` KOSAKI Motohiro
2009-09-15  8:27               ` Roland Dreier
2009-09-15 12:38               ` Jeff Squyres
2009-09-15 11:34 ` Pavel Machek
2009-09-15 14:57   ` [ofa-general] " Roland Dreier
2009-09-28 20:49     ` Pavel Machek
2009-09-28 21:40       ` Jason Gunthorpe
2009-09-16 16:30 ` Roland Dreier
2009-09-16 16:40   ` Linus Torvalds
2009-09-17 11:30 ` Peter Zijlstra
2009-09-17 14:24   ` [ofa-general] " Roland Dreier
2009-09-17 14:32     ` Roland Dreier
2009-09-17 14:49       ` Peter Zijlstra
2009-09-17 15:03         ` Roland Dreier
2009-09-17 15:22           ` Peter Zijlstra
2009-09-17 15:45           ` Roland Dreier
2009-09-18 11:50             ` Ingo Molnar
2009-09-29 17:13             ` Pavel Machek
2009-09-30  9:44               ` Ingo Molnar
2009-09-30 16:02                 ` Jason Gunthorpe
2009-10-12 18:19                   ` Ingo Molnar
2009-10-12 19:30                     ` Jason Gunthorpe
2009-10-12 20:20                       ` Ingo Molnar
2009-10-13  4:05                         ` Jason Gunthorpe
2009-10-13  6:40                           ` Ingo Molnar
2009-10-13 16:27                             ` Jason Gunthorpe
2009-10-13  5:43                         ` Brice Goglin
2009-10-13  6:38                           ` Ingo Molnar
2009-09-30 17:06                 ` Roland Dreier
2009-10-02 16:32                 ` Roland Dreier [this message]
2009-10-02 20:45                   ` Pavel Machek
2009-10-07 22:34                   ` Roland Dreier
2009-10-12 17:33                     ` Peter Zijlstra
2009-09-17 14:43     ` Peter Zijlstra

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=ada3a61rc3j.fsf@cisco.com \
    --to=rdreier@cisco.com \
    --cc=akpm@linux-foundation.org \
    --cc=anton@samba.org \
    --cc=general@lists.openfabrics.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=pavel@ucw.cz \
    --cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox