All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Budankov <alexey.budankov@linux.intel.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Masami Hiramatsu <mhiramat@kernel.org>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Song Liu <songliubraving@fb.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>,
	"joonas.lahtinen@linux.intel.com"
	<joonas.lahtinen@linux.intel.com>,
	"rodrigo.vivi@intel.com" <rodrigo.vivi@intel.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"james.bottomley@hansenpartnership.com" 
	<james.bottomley@hansenpartnership.com>,
	Serge Hallyn <serge@hallyn.com>, James Morris <jmorris@namei.org>,
	Will Deacon <will.deacon@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Casey Schaufler <casey@schaufler-ca.com>,
	Robert Richter <rric@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
	Andi Kleen <ak@linux.intel.com>,
	Stephane Eranian <eranian@google.com>,
	Igor Lubashev <ilubashe@akamai.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Namhyung Kim <namhyung@kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 2/9] perf/core: open access for CAP_SYS_PERFMON privileged process
Date: Tue, 14 Jan 2020 12:47:42 +0300	[thread overview]
Message-ID: <81abaa29-d1be-a888-8b2f-fdf9b7e9fde8@linux.intel.com> (raw)
In-Reply-To: <CAADnVQLCtrvvagbbkZG4PyAKb2PWzUouxG3=nxvm8QdpgEWtGQ@mail.gmail.com>


On 14.01.2020 8:17, Alexei Starovoitov wrote:
> On Mon, Jan 13, 2020 at 7:25 PM Masami Hiramatsu <mhiramat@kernel.org> wrote:
>>
>> On Sat, 11 Jan 2020 12:57:18 +0300
>> Alexey Budankov <alexey.budankov@linux.intel.com> wrote:
>>
>>>
>>> On 11.01.2020 3:35, arnaldo.melo@gmail.com wrote:
>>
>>>> Message-ID: <A7F0BF73-9189-44BA-9264-C88F2F51CBF3@kernel.org>
>>>>
>>>> On January 10, 2020 9:23:27 PM GMT-03:00, Song Liu <songliubraving@fb.com> wrote:
>>>>>
>>>>>
>>>>>> On Jan 10, 2020, at 3:47 PM, Masami Hiramatsu <mhiramat@kernel.org>
>>>>> wrote:
>>>>>>
>>>>>> On Fri, 10 Jan 2020 13:45:31 -0300
>>>>>> Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
>>>>>>
>>>>>>> Em Sat, Jan 11, 2020 at 12:52:13AM +0900, Masami Hiramatsu escreveu:
>>>>>>>> On Fri, 10 Jan 2020 15:02:34 +0100 Peter Zijlstra
>>>>> <peterz@infradead.org> wrote:
>>>>>>>>> Again, this only allows attaching to previously created kprobes,
>>>>> it does
>>>>>>>>> not allow creating kprobes, right?
>>>>>>>
>>>>>>>>> That is; I don't think CAP_SYS_PERFMON should be allowed to create
>>>>>>>>> kprobes.
>>>>>>>
>>>>>>>>> As might be clear; I don't actually know what the user-ABI is for
>>>>>>>>> creating kprobes.
>>>>>>>
>>>>>>>> There are 2 ABIs nowadays, ftrace and ebpf. perf-probe uses ftrace
>>>>> interface to
>>>>>>>> define new kprobe events, and those events are treated as
>>>>> completely same as
>>>>>>>> tracepoint events. On the other hand, ebpf tries to define new
>>>>> probe event
>>>>>>>> via perf_event interface. Above one is that interface. IOW, it
>>>>> creates new kprobe.
>>>>>>>
>>>>>>> Masami, any plans to make 'perf probe' use the perf_event_open()
>>>>>>> interface for creating kprobes/uprobes?
>>>>>>
>>>>>> Would you mean perf probe to switch to perf_event_open()?
>>>>>> No, perf probe is for setting up the ftrace probe events. I think we
>>>>> can add an
>>>>>> option to use perf_event_open(). But current kprobe creation from
>>>>> perf_event_open()
>>>>>> is separated from ftrace by design.
>>>>>
>>>>> I guess we can extend event parser to understand kprobe directly.
>>>>> Instead of
>>>>>
>>>>>    perf probe kernel_func
>>>>>    perf stat/record -e probe:kernel_func ...
>>>>>
>>>>> We can just do
>>>>>
>>>>>    perf stat/record -e kprobe:kernel_func ...
>>>>
>>>>
>>>> You took the words from my mouth, exactly, that is a perfect use case, an alternative to the 'perf probe' one of making a disabled event that then gets activated via record/stat/trace, in many cases it's better, removes the explicit probe setup case.
>>>
>>> Arnaldo, Masami, Song,
>>>
>>> What do you think about making this also open to CAP_SYS_PERFMON privileged processes?
>>> Could you please also review and comment on patch 5/9 for bpf_trace.c?
>>
>> As we talked at RFC series of CAP_SYS_TRACING last year, I just expected
>> to open it for enabling/disabling kprobes, not for creation.
>>
>> If we can accept user who has no admin priviledge but the CAP_SYS_PERFMON,
>> to shoot their foot by their own risk, I'm OK to allow it. (Even though,
>> it should check the max number of probes to be created by something like
>> ulimit)
>> I think nowadays we have fixed all such kernel crash problems on x86,
>> but not sure for other archs, especially on the devices I can not reach.
>> I need more help to stabilize it.
> 
> I don't see how enable/disable is any safer than creation.
> If there are kernel bugs in kprobes the kernel will crash anyway.
> I think such partial CAP_SYS_PERFMON would be very confusing to the users.
> CAP_* is about delegation of root privileges to non-root.
> Delegating some of it is ok, but disallowing creation makes it useless
> for bpf tracing, so we would need to add another CAP later.
> Hence I suggest to do it right away instead of breaking
> sys_perf_even_open() access into two CAPs.
> 

Alexei, Masami,

Thanks for your meaningful input.
If we know in advance that it still can crash the system in some cases and on 
some archs, even though root fully controls delegation thru CAP_SYS_PERFMON,
such delegation looks premature until the crashes are avoided. So it looks like
access to eBPF for CAP_SYS_PERFMON privileged processes is the subject for
a separate patch set.

Thanks,
Alexey

  reply	other threads:[~2020-01-14  9:47 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-18  9:16 [PATCH v4 0/7] Introduce CAP_SYS_PERFMON to secure system performance monitoring and observability Alexey Budankov
2019-12-18  9:16 ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:16 ` Alexey Budankov
2019-12-18  9:16 ` Alexey Budankov
2019-12-18  9:16 ` Alexey Budankov
2019-12-18  9:24 ` [PATCH v4 1/9] capabilities: introduce CAP_SYS_PERFMON to kernel and user space Alexey Budankov
2019-12-18  9:24   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:24   ` Alexey Budankov
2019-12-18  9:24   ` Alexey Budankov
2019-12-18  9:24   ` Alexey Budankov
2019-12-18 19:56   ` Stephen Smalley
2019-12-18 19:56     ` [Intel-gfx] " Stephen Smalley
2019-12-18 19:56     ` Stephen Smalley
2019-12-18 19:56     ` Stephen Smalley
2019-12-18 19:56     ` Stephen Smalley
2019-12-28  3:53   ` Serge E. Hallyn
2019-12-28  3:53     ` [Intel-gfx] " Serge E. Hallyn
2019-12-28  3:53     ` Serge E. Hallyn
2019-12-28  3:53     ` Serge E. Hallyn
2020-01-13 20:25   ` Song Liu
2020-01-13 20:25     ` [Intel-gfx] " Song Liu
2020-01-13 20:25     ` Song Liu
2020-01-13 20:25     ` Song Liu
2019-12-18  9:25 ` [PATCH v4 2/9] perf/core: open access for CAP_SYS_PERFMON privileged process Alexey Budankov
2019-12-18  9:25   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:25   ` Alexey Budankov
2019-12-18  9:25   ` Alexey Budankov
2019-12-18  9:25   ` Alexey Budankov
2020-01-08 16:07   ` Peter Zijlstra
2020-01-08 16:07     ` [Intel-gfx] " Peter Zijlstra
2020-01-08 16:07     ` Peter Zijlstra
2020-01-08 16:07     ` Peter Zijlstra
2020-01-08 16:07     ` Peter Zijlstra
2020-01-09 11:36     ` Alexey Budankov
2020-01-09 11:36       ` [Intel-gfx] " Alexey Budankov
2020-01-09 11:36       ` Alexey Budankov
2020-01-09 11:36       ` Alexey Budankov
2020-01-09 11:36       ` Alexey Budankov
2020-01-10 14:02       ` Peter Zijlstra
2020-01-10 14:02         ` [Intel-gfx] " Peter Zijlstra
2020-01-10 14:02         ` Peter Zijlstra
2020-01-10 14:02         ` Peter Zijlstra
2020-01-10 15:52         ` Masami Hiramatsu
2020-01-10 15:52           ` [Intel-gfx] " Masami Hiramatsu
2020-01-10 15:52           ` Masami Hiramatsu
2020-01-10 15:52           ` Masami Hiramatsu
2020-01-10 16:45           ` Arnaldo Carvalho de Melo
2020-01-10 16:45             ` [Intel-gfx] " Arnaldo Carvalho de Melo
2020-01-10 16:45             ` Arnaldo Carvalho de Melo
2020-01-10 16:45             ` Arnaldo Carvalho de Melo
2020-01-10 23:47             ` Masami Hiramatsu
2020-01-10 23:47               ` [Intel-gfx] " Masami Hiramatsu
2020-01-10 23:47               ` Masami Hiramatsu
2020-01-10 23:47               ` Masami Hiramatsu
2020-01-11  0:23               ` Song Liu
2020-01-11  0:23                 ` [Intel-gfx] " Song Liu
2020-01-11  0:23                 ` Song Liu
2020-01-11  0:23                 ` Song Liu
2020-01-11  0:35                 ` arnaldo.melo
2020-01-11  0:35                   ` [Intel-gfx] " arnaldo.melo
2020-01-11  9:57                   ` Alexey Budankov
2020-01-13 20:39                     ` Song Liu
2020-01-14  3:25                     ` Masami Hiramatsu
2020-01-14  5:17                       ` Alexei Starovoitov
2020-01-14  9:47                         ` Alexey Budankov [this message]
2020-01-14 18:06                           ` Alexei Starovoitov
2020-01-14 18:50                             ` Alexey Budankov
2020-01-15  1:52                               ` Alexei Starovoitov
2020-01-15  5:15                                 ` Alexey Budankov
2020-04-01 20:50                                 ` Alexey Budankov
2020-04-03 13:55                                   ` Alexey Budankov
2020-04-03 13:56                                   ` Alexey Budankov
2020-01-15  9:45                               ` Masami Hiramatsu
2020-01-15 12:11                                 ` Alexey Budankov
2020-01-14 12:04                         ` Masami Hiramatsu
2020-01-12  1:44                   ` Masami Hiramatsu
2020-01-12  1:44                     ` [Intel-gfx] " Masami Hiramatsu
2020-01-12  1:44                     ` Masami Hiramatsu
2020-01-10 16:41         ` Alexey Budankov
2020-01-10 16:41           ` [Intel-gfx] " Alexey Budankov
2020-01-10 16:41           ` Alexey Budankov
2020-01-10 16:41           ` Alexey Budankov
2020-01-10 17:34         ` Alexey Budankov
2020-01-10 17:34           ` [Intel-gfx] " Alexey Budankov
2020-01-10 17:34           ` Alexey Budankov
2020-01-10 17:34           ` Alexey Budankov
2020-04-01 20:49     ` Alexey Budankov
2020-04-03 14:28       ` Alexey Budankov
2019-12-18  9:26 ` [PATCH v4 3/9] perf tool: extend Perf tool with CAP_SYS_PERFMON capability support Alexey Budankov
2019-12-18  9:26   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:26   ` Alexey Budankov
2019-12-18  9:26   ` Alexey Budankov
2019-12-18  9:26   ` Alexey Budankov
2019-12-18  9:27 ` [PATCH v4 4/9] drm/i915/perf: open access for CAP_SYS_PERFMON privileged process Alexey Budankov
2019-12-18  9:27   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:27   ` Alexey Budankov
2019-12-18  9:27   ` Alexey Budankov
2019-12-18  9:27   ` Alexey Budankov
2019-12-19  9:10   ` Lionel Landwerlin
2019-12-19  9:10     ` [Intel-gfx] " Lionel Landwerlin
2019-12-19  9:10     ` Lionel Landwerlin
2019-12-19  9:10     ` Lionel Landwerlin
2019-12-19  9:10     ` Lionel Landwerlin
2019-12-18  9:28 ` [PATCH v4 5/9] trace/bpf_trace: " Alexey Budankov
2019-12-18  9:28   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2020-01-13 20:47   ` Song Liu
2020-01-13 20:47     ` [Intel-gfx] " Song Liu
2020-01-13 20:47     ` Song Liu
2020-01-13 20:47     ` Song Liu
2019-12-18  9:28 ` [PATCH v4 6/9] powerpc/perf: " Alexey Budankov
2019-12-18  9:28   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2019-12-18  9:28   ` Alexey Budankov
2019-12-18  9:29 ` [PATCH v4 7/9] parisc/perf: " Alexey Budankov
2019-12-18  9:29   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:29   ` Alexey Budankov
2019-12-18  9:29   ` Alexey Budankov
2019-12-18  9:29   ` Alexey Budankov
2020-01-27  8:52   ` Helge Deller
2020-01-27  8:52     ` [Intel-gfx] " Helge Deller
2020-01-27  8:52     ` Helge Deller
2020-01-27  8:52     ` Helge Deller
2020-01-27  8:52     ` Helge Deller
2019-12-18  9:30 ` [PATCH v4 8/9] drivers/perf: " Alexey Budankov
2019-12-18  9:30   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:30   ` Alexey Budankov
2019-12-18  9:30   ` Alexey Budankov
2019-12-18  9:30   ` Alexey Budankov
2020-01-17 10:51   ` Will Deacon
2020-01-17 10:51     ` [Intel-gfx] " Will Deacon
2020-01-17 10:51     ` Will Deacon
2020-01-17 10:51     ` Will Deacon
2020-01-17 21:33     ` Alexey Budankov
2020-01-17 21:33       ` [Intel-gfx] " Alexey Budankov
2020-01-17 21:33       ` Alexey Budankov
2020-01-17 21:33       ` Alexey Budankov
2020-01-18 18:48     ` Alexey Budankov
2020-01-18 18:48       ` Alexey Budankov
2019-12-18  9:31 ` [PATCH v4 9/9] drivers/oprofile: " Alexey Budankov
2019-12-18  9:31   ` [Intel-gfx] " Alexey Budankov
2019-12-18  9:31   ` Alexey Budankov
2019-12-18  9:31   ` Alexey Budankov
2019-12-18  9:31   ` Alexey Budankov
2019-12-18 10:11 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Introduce CAP_SYS_PERFMON to secure system performance monitoring and observability (rev3) Patchwork

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=81abaa29-d1be-a888-8b2f-fdf9b7e9fde8@linux.intel.com \
    --to=alexey.budankov@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=ast@kernel.org \
    --cc=benh@kernel.crashing.org \
    --cc=casey@schaufler-ca.com \
    --cc=eranian@google.com \
    --cc=ilubashe@akamai.com \
    --cc=james.bottomley@hansenpartnership.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=jmorris@namei.org \
    --cc=jolsa@redhat.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=rric@kernel.org \
    --cc=serge@hallyn.com \
    --cc=songliubraving@fb.com \
    --cc=will.deacon@arm.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.