From: Alexey Budankov <alexey.budankov@linux.intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Jonatan Corbet <corbet@lwn.net>,
Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Jann Horn <jannh@google.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Andi Kleen <ak@linux.intel.com>,
Mark Rutland <mark.rutland@arm.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
"kernel-hardening@lists.openwall.com"
<kernel-hardening@lists.openwall.com>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 1/4] perf-security: document perf_events/Perf resource control
Date: Mon, 11 Feb 2019 15:46:02 +0300 [thread overview]
Message-ID: <969b6ea5-a5bf-70b7-7031-38b07538f744@linux.intel.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1902102300210.8784@nanos.tec.linutronix.de>
On 11.02.2019 1:34, Thomas Gleixner wrote:
> On Thu, 7 Feb 2019, Alexey Budankov wrote:
>
> General note: Please stay in the 80 char limit for all of the text.
Yes, sure. [PATCH v2 4/4] implements wrapping at 72 columns.
>
>> +The perf_events system call API [2]_ allocates file descriptors for every configured
>> +PMU event. Open file descriptors are a per-process accountable resource governed
>> +by the RLIMIT_NOFILE [11]_ limit (ulimit -n), which is usually derived from the login
>> +shell process. When configuring Perf collection for a long list of events on a
>> +large server system, this limit can be easily hit preventing required monitoring
>> +configuration.
>
> I'd move this sentence into a different paragraph and keep those related to
> RLIMIT_NOFILE together.
Makes sense. Let's have these two paragraphs:
Open file descriptors
+++++++++++++++++++++
Memory allocation
+++++++++++++++++
>
>> ... RLIMIT_NOFILE limit can be increased on per-user basis modifying
>> +content of the limits.conf file [12]_ on some systems.
>
> On some systems?
Well, let's avoid this subtlety and have it like:
'RLIMIT_NOFILE limit can be increased on per-user basis
modifying content of the limits.conf file [12]_ .'
>
>> Ordinarily, a Perf sampling session
>> +(perf record) requires an amount of open perf_event file descriptors that is not
>> +less than a number of monitored events multiplied by a number of monitored CPUs.
>
> s/a number of/the number of/
Accepted.
>
> The ordinary use case is:
>
> perf CMD pile-of-events PROCESS
>
> which does not specify the monitored CPUs at all. Then the number of file
> descriptors is NR_EVENTS * NR_ONLINE_CPUS.
>
>> +An amount of memory available to user processes for capturing performance monitoring
>
> The amount ...
Accepted.
>
>> +data is governed by the perf_event_mlock_kb [2]_ setting. This perf_event specific
>> +resource setting defines overall per-cpu limits of memory allowed for mapping
>> +by the user processes to execute performance monitoring. The setting essentially
>> +extends the RLIMIT_MEMLOCK [11]_ limit, but only for memory regions mapped specially
>
> s/specially/specifically/
Accepted.
>
>> +for capturing monitored performance events and related data.
>> +
>> +For example, if a machine has eight cores and perf_event_mlock_kb limit is set
>> +to 516 KiB, then a user process is provided with 516 KiB * 8 = 4128 KiB of memory
>> +above the RLIMIT_MEMLOCK limit (ulimit -l) for perf_event mmap buffers. In particular,
>> +this means that, if the user wants to start two or more performance monitoring
>> +processes, the user is required to manually distribute available 4128 KiB between the
>
> distribute the available
Accepted.
>
>> +monitoring processes, for example, using the --mmap-pages Perf record mode option.
>> +Otherwise, the first started performance monitoring process allocates all available
>> +4128 KiB and the other processes will fail to proceed due to the lack of memory.
>> +
>> +RLIMIT_MEMLOCK and perf_event_mlock_kb resource costraints are ignored for
>
> constraints.
Accepted.
>
>> +processes with the CAP_IPC_LOCK capability. Thus, perf_events/Perf privileged users
>
> what means perf_events/Perf ?
'perf_events/Perf privileged users' refers to the paragraph about privileged users.
'perf_events/Perf' means exact combination of the kernel subsystem (perf_events) and
the privileged Perf tool (Perf) executable that enables certain group of users with
performance monitoring capabilities without scope limit.
>
>> +can be provided with memory above the constraints for perf_events/Perf performance
>> +monitoring purpose by providing the Perf executable with CAP_IPC_LOCK capability.
>
> Thanks,
>
> tglx
>
Thanks,
Alexey
next prev parent reply other threads:[~2019-02-11 12:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-07 13:23 [PATCH v2 0/3] admin-guide: extend perf-security with resource control, data categories and privileged users Alexey Budankov
2019-02-07 13:29 ` [PATCH v2 1/4] perf-security: document perf_events/Perf resource control Alexey Budankov
2019-02-10 22:34 ` Thomas Gleixner
2019-02-11 12:46 ` Alexey Budankov [this message]
2019-02-11 14:15 ` Thomas Gleixner
2019-02-11 14:22 ` Alexey Budankov
2019-02-07 13:30 ` [PATCH v2 2/4] perf-security: document collected perf_events/Perf data categories Alexey Budankov
2019-02-07 13:31 ` [PATCH v2 3/4] perf-security: elaborate on perf_events/Perf privileged users Alexey Budankov
2019-02-07 13:32 ` [PATCH v2 4/4] perf-security: wrap paragraphs on 72 columns Alexey Budankov
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=969b6ea5-a5bf-70b7-7031-38b07538f744@linux.intel.com \
--to=alexey.budankov@linux.intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=corbet@lwn.net \
--cc=jannh@google.com \
--cc=jolsa@redhat.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tvrtko.ursulin@linux.intel.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 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).