From: Peter Zijlstra <peterz@infradead.org>
To: Stephane Eranian <eranian@google.com>
Cc: Robert Richter <robert.richter@amd.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mingo@elte.hu" <mingo@elte.hu>,
"ming.m.lin@intel.com" <ming.m.lin@intel.com>,
"ak@linux.intel.com" <ak@linux.intel.com>
Subject: Re: [PATCH] perf_events: fix and improve x86 event scheduling
Date: Mon, 14 Nov 2011 17:00:06 +0100 [thread overview]
Message-ID: <1321286406.1421.30.camel@twins> (raw)
In-Reply-To: <CABPqkBSc-o+ysZEVx72acE7+AY8fLR8sqFDedKBwh8H60Z77cQ@mail.gmail.com>
On Mon, 2011-11-14 at 15:26 +0100, Stephane Eranian wrote:
> There is an edge from the source to all the events.
> There is an edge from all the counters to the sync.
> There is an edge between an event and a counter, if
> it can count the event.
>
> The capacity of any edge is 1.
Ah indeed.
So that gives:
E = e+e*c+c ~= O(c^2); since e<=c
V = 2+e+c ~= O(c)
Then going by:
http://en.wikipedia.org/wiki/Maximum_flow_problem
we have to stay away from Edmonds-Karp.
Ford-Fulkerson would end up being O(E * c) = O(c^3), since max |f| is c.
Which is pretty much identical to all these O(V^2 E) = O(c^3) as well.
Dinitz blocking flow with dynamic trees looks more interesting at O(c^2
log(c)). Push relabel with dynamic trees looks to be best at O(c^2),
since V^2/E ends up being c^2/c^2 = 1.
Creating the graph itself will be O(c^2) as well, due to E.
next prev parent reply other threads:[~2011-11-14 16:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-07 11:01 [PATCH] perf_events: fix and improve x86 event scheduling Stephane Eranian
2011-11-07 11:55 ` Peter Zijlstra
2011-11-07 12:10 ` Peter Zijlstra
2011-11-07 13:52 ` Stephane Eranian
2011-11-07 14:56 ` Peter Zijlstra
2011-11-10 14:37 ` Peter Zijlstra
2011-11-10 15:09 ` Stephane Eranian
2011-11-10 16:41 ` Gleb Natapov
2011-11-10 16:59 ` Stephane Eranian
2011-11-10 17:13 ` Gleb Natapov
2011-11-10 16:59 ` Robert Richter
2011-11-10 18:31 ` Peter Zijlstra
2011-11-10 18:03 ` Robert Richter
2011-11-10 18:41 ` Peter Zijlstra
2011-11-10 18:52 ` Peter Zijlstra
2011-11-11 14:29 ` Robert Richter
2011-11-14 17:51 ` [PATCH v3 0/2] perf, x86: handle overlapping counters Robert Richter
2011-11-14 17:51 ` [PATCH v3 1/2] perf, x86: Implement event scheduler helper functions Robert Richter
2011-11-16 16:02 ` Peter Zijlstra
2011-11-16 19:23 ` Robert Richter
2011-11-14 17:51 ` [PATCH v3 2/2] perf, x86: Fix event scheduler for constraints with overlapping counters Robert Richter
2011-11-14 12:55 ` [PATCH] perf_events: fix and improve x86 event scheduling Stephane Eranian
2011-11-14 14:12 ` Peter Zijlstra
2011-11-14 14:26 ` Stephane Eranian
2011-11-14 16:00 ` Peter Zijlstra [this message]
2011-11-14 17:39 ` Stephane Eranian
2011-11-14 21:43 ` Peter Zijlstra
2011-11-16 10:28 ` Stephane Eranian
2011-11-14 22:16 ` Peter Zijlstra
2011-11-16 10:06 ` Stephane Eranian
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=1321286406.1421.30.camel@twins \
--to=peterz@infradead.org \
--cc=ak@linux.intel.com \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=mingo@elte.hu \
--cc=robert.richter@amd.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