From: ebiederm@xmission.com (Eric W. Biederman)
To: Hari Bathini <hbathini@linux.vnet.ibm.com>
Cc: ast@fb.com, peterz@infradead.org,
lkml <linux-kernel@vger.kernel.org>,
acme@kernel.org, alexander.shishkin@linux.intel.com,
mingo@redhat.com, daniel@iogearbox.net, rostedt@goodmis.org,
Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>,
sargun@sargun.me, Aravinda Prasad <aravinda@linux.vnet.ibm.com>,
brendan.d.gregg@gmail.com
Subject: Re: [PATCH v3 1/3] perf: add PERF_RECORD_NAMESPACES to include namespaces related info
Date: Wed, 14 Dec 2016 08:58:42 +1300 [thread overview]
Message-ID: <87a8bzfvnx.fsf@xmission.com> (raw)
In-Reply-To: <51be4a2e-ebec-9047-8b3b-e011335bdd4d@linux.vnet.ibm.com> (Hari Bathini's message of "Wed, 14 Dec 2016 00:17:26 +0530")
Hari Bathini <hbathini@linux.vnet.ibm.com> writes:
> Hi Eric,
>
>
> On Monday 12 December 2016 11:57 PM, Eric W. Biederman wrote:
>> Hari Bathini <hbathini@linux.vnet.ibm.com> writes:
>>
>>> With the advert of container technologies like docker, that depend
>>> on namespaces for isolation, there is a need for tracing support for
>>> namespaces. This patch introduces new PERF_RECORD_NAMESPACES event
>>> for tracing based on namespaces related info.
>>> diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
>>> index c66a485..2a48fc6 100644
>>> --- a/include/uapi/linux/perf_event.h
>>> +++ b/include/uapi/linux/perf_event.h
>>> @@ -344,7 +344,8 @@ struct perf_event_attr {
>>> use_clockid : 1, /* use @clockid for time fields */
>>> context_switch : 1, /* context switch data */
>>> write_backward : 1, /* Write ring buffer from end to beginning */
>>> - __reserved_1 : 36;
>>> + namespaces : 1, /* include namespaces data */
>>> + __reserved_1 : 35;
>>> union {
>>> __u32 wakeup_events; /* wakeup every n events */
>>> @@ -610,6 +611,18 @@ struct perf_event_header {
>>> __u16 size;
>>> };
>>> +enum {
>>> + NET_NS_INDEX = 0,
>>> + UTS_NS_INDEX = 1,
>>> + IPC_NS_INDEX = 2,
>>> + PID_NS_INDEX = 3,
>>> + USER_NS_INDEX = 4,
>>> + MNT_NS_INDEX = 5,
>>> + CGROUP_NS_INDEX = 6,
>>> +
>>> + NAMESPACES_MAX, /* maximum available namespaces */
>>> +};
>>> +
>>> enum perf_event_type {
>>> /*
>>> @@ -862,6 +875,18 @@ enum perf_event_type {
>>> */
>>> PERF_RECORD_SWITCH_CPU_WIDE = 15,
>>> + /*
>>> + * struct {
>>> + * struct perf_event_header header;
>>> + *
>>> + * u32 pid, tid;
>>> + * u64 dev_num;
>>> + * u64 inode_num[NAMESPACES_MAX];
>> There needs to be one device number per inode. While it is true that
>> today the device number is always the same. That is not necessarily so.
>> I reserve the right to have the device number vary per namespace
>> so that I don't need to implement a namespace of namespaces.
>>
>> These are st_dev and st_ino of the inode for the namespace.
>
> Do you mean..
>
> st_dev = encode_dev(inode->i_sb->s_dev); ?
> st_ino = inode->i_ino; ?
Yes. I believe that is how those values make it to user space
during a stat system call.
Eric
next prev parent reply other threads:[~2016-12-13 20:04 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-12 18:19 [PATCH v3 0/3] perf: add support for analyzing events for containers Hari Bathini
2016-12-12 18:19 ` [PATCH v3 1/3] perf: add PERF_RECORD_NAMESPACES to include namespaces related info Hari Bathini
2016-12-12 18:27 ` Eric W. Biederman
2016-12-13 18:47 ` Hari Bathini
2016-12-13 19:58 ` Eric W. Biederman [this message]
2016-12-12 18:19 ` [PATCH v3 2/3] perf tool: " Hari Bathini
2016-12-12 21:51 ` Eric W. Biederman
2016-12-12 18:20 ` [PATCH v3 3/3] perf tool: add cgroup identifier entry in perf report Hari Bathini
2016-12-12 22:06 ` Eric W. Biederman
2016-12-13 19:07 ` Hari Bathini
2016-12-13 19:56 ` Eric W. Biederman
2016-12-14 8:24 ` Peter Zijlstra
2016-12-14 15:52 ` Eric W. Biederman
2016-12-14 17:03 ` Hari Bathini
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=87a8bzfvnx.fsf@xmission.com \
--to=ebiederm@xmission.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=aravinda@linux.vnet.ibm.com \
--cc=ast@fb.com \
--cc=brendan.d.gregg@gmail.com \
--cc=daniel@iogearbox.net \
--cc=hbathini@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sargun@sargun.me \
/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