mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Song Liu <songliubraving@fb.com>
To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Cc: lkml <linux-kernel@vger.kernel.org>,
	Kernel Team <Kernel-team@fb.com>, Tejun Heo <tj@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Jiri Olsa <jolsa@kernel.org>,
	Alexey Budankov <alexey.budankov@linux.intel.com>,
	"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>,
	Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Subject: Re: [PATCH v3 1/1] perf: Sharing PMU counters across compatible events
Date: Mon, 1 Oct 2018 23:25:09 +0000	[thread overview]
Message-ID: <6803478E-035D-4CD4-B16E-6250BB07CA0B@fb.com> (raw)
In-Reply-To: <CBE3EBD5-EAC6-41B6-88C1-B15958591172@fb.com>



> On Sep 27, 2018, at 9:53 PM, Song Liu <songliubraving@fb.com> wrote:
> 
> Hi Ravi,
> 
>> On Sep 27, 2018, at 9:33 PM, Ravi Bangoria <ravi.bangoria@linux.ibm.com> wrote:
>> 
>> Hi Song,
>> 
>> On 09/25/2018 03:55 AM, Song Liu wrote:
>>> This patch tries to enable PMU sharing. To make perf event scheduling
>>> fast, we use special data structures.
>>> 
>>> An array of "struct perf_event_dup" is added to the perf_event_context,
>>> to remember all the duplicated events under this ctx. All the events
>>> under this ctx has a "dup_id" pointing to its perf_event_dup. Compatible
>>> events under the same ctx share the same perf_event_dup. The following
>>> figure shows a simplified version of the data structure.
>>> 
>>>     ctx ->  perf_event_dup -> master
>>>                    ^
>>>                    |
>>>        perf_event /|
>>>                    |
>>>        perf_event /
>>> 
>> 
>> I've not gone through the patch in detail, but I was specifically
>> interested in scenarios where one perf instance is counting event
>> systemwide and thus other perf instance fails to count the same
>> event for a specific workload because that event can be counted
>> in one hw counter only.
>> 
>> Ex: https://lkml.org/lkml/2018/3/12/1011
>> 
>> Seems this patch does not solve this issue. Please let me know if
>> I'm missing anything.
>> 
> 
> In this case, unfortunately, these two events cannot share the same
> counter, because one of them is in cpu ctx; while the other belongs 
> to the task ctx. They have to go through the rotation, that each 
> event counts 50% of the time. However, if you have 2 events in cpu 
> ctx and 2 events in task ctx on the same counter, this patch will 
> help each event to count 50% of time, instead of 25%. 

I was wrong here. The CPU flexible events have higher priority than
task flexible events, so the per task event will never get scheduled. 

On the other hand, I think it is possible to put per task event on 
per CPU ctx, and handle the event just like per cgroup events. Once we
get this part work, system wide events will be able to share PMU with
per task events. Let me try prototype it. 

Thanks,
Song


      reply	other threads:[~2018-10-01 23:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-24 22:25 [PATCH v3 0/1] " Song Liu
2018-09-24 22:25 ` [PATCH v3 1/1] " Song Liu
2018-09-28  4:33   ` Ravi Bangoria
2018-09-28  4:53     ` Song Liu
2018-10-01 23:25       ` Song Liu [this message]

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=6803478E-035D-4CD4-B16E-6250BB07CA0B@fb.com \
    --to=songliubraving@fb.com \
    --cc=Kernel-team@fb.com \
    --cc=alexey.budankov@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maddy@linux.vnet.ibm.com \
    --cc=naveen.n.rao@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=tj@kernel.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

all inboxes | Powered by JetHome®