All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brendan Gregg <brendan.d.gregg@gmail.com>
To: William Cohen <wcohen@redhat.com>
Cc: "linux-perf-use." <linux-perf-users@vger.kernel.org>
Subject: Re: perf software events broken in containers
Date: Wed, 22 Mar 2017 12:59:22 -0700	[thread overview]
Message-ID: <CAE40pdd06QXckEMYfU63c=Zvrrn22A-sm-Sh37CymR5rpJZ57Q@mail.gmail.com> (raw)
In-Reply-To: <8c4186d0-bfbf-6f1a-c953-9859bf057856@redhat.com>

G'Day Will,

On Wed, Mar 22, 2017 at 12:15 PM, William Cohen <wcohen@redhat.com> wrote:
> On 03/22/2017 02:24 PM, Brendan Gregg wrote:
>> G'Day,
[...]
>>
>> The kernel is returning errno 1 to the sys_perf_event_open() call in
>> __perf_evsel__open(). I'm trying to find out which kernel function
>> throws the EPERM, but almost nothing is tracable via ftrace/kprobes.
>> It's pretty annoying... Thanks for any ideas,
>
> Hi Brendan,
>
> Several years ago I had a problem with the perf_event_open not working on arm machines.  I looked at the kernel source code and just kept putting systemtap one-liners like the following on the various functions used by the perf_event_open to see which function was the one returning the error code:
>
> stap -v -e 'probe kernel.function("idr_find").return {printf("%s %s 0x%x\n", pn(), $$parms$, $return)}'
>

Right, I've been doing that with ftrace/kprobes/bcc/BPF... Many of the
functions aren't visible, though, I suspect inlined.

>
> Could the docker container not have the perf_event_open syscall on the whitelist of allowed syscalls?
>

Good thought. I do have a __secure_computing() call returning a -1,
and docker recently changed their blacklist to a whitelist:

https://github.com/docker/docker/pull/18979

I'm digging on this...

> Would bcc's capable.py tool give some insight into whether there are some other capabilities that the perf_event_open might be needing?
>

It should do (and I should enhance it to show the result of the
capability lookups, it was first written to just show what was being
asked), but it doesn't say anything new in this case. CAP_SYS_ADMIN,
which perf already has...

Thanks,

Brendan

> -Will
>>
>> Brendan
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>

  reply	other threads:[~2017-03-22 19:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 18:24 perf software events broken in containers Brendan Gregg
2017-03-22 19:15 ` William Cohen
2017-03-22 19:59   ` Brendan Gregg [this message]
2017-03-22 20:29     ` William Cohen
2017-03-22 21:35       ` Brendan Gregg
2017-03-23 14:21         ` David Ahern
2017-03-27 16:10     ` Frank Ch. Eigler

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='CAE40pdd06QXckEMYfU63c=Zvrrn22A-sm-Sh37CymR5rpJZ57Q@mail.gmail.com' \
    --to=brendan.d.gregg@gmail.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=wcohen@redhat.com \
    /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.