Messages in this thread | | | Date | Mon, 18 Jan 2010 17:51:15 +0100 | From | Frederic Weisbecker <> | Subject | Re: [PATCH] perf_events: improve x86 event scheduling (v5) |
| |
On Mon, Jan 18, 2010 at 05:26:13PM +0100, Peter Zijlstra wrote: > On Mon, 2010-01-18 at 17:18 +0100, Frederic Weisbecker wrote: > > On Mon, Jan 18, 2010 at 03:56:41PM +0100, Peter Zijlstra wrote: > > > On Mon, 2010-01-18 at 15:45 +0100, Frederic Weisbecker wrote: > > > > > > > > > > That requires to know in advance if we have hardware pmu > > > > > > in the list though (can be a flag in the group). > > > > > > > > > > Good point, but your proposed hw_check_constraint() call needs to know > > > > > the exact same. > > > > > > > > > > > > True. Whatever model we use anyway, both implement the same idea. > > > > > > Hmm, we seem to already have that problem (which would indicate another > > > bug in the hw-breakpoint stuff), how do you deal with > > > hw_perf_{enable,disable}() for the breakpoints? > > > > > > We don't have ordering constraints for breakpoints, only constraints > > on the number of available registers. > > > > So we check the constraints when a breakpoint registers. The > > enable/disable then (is supposed to) always succeed on breakpoint > > pmu, except for flexible breakpoints that can make it or not, > > but no need to overwrite group scheduling for that. > > hw_perf_{enable,disable} are unrelated to groups.
Right hw_perf_enable/disable have no action on breakpoint events. These were somehow considered as software events until now.
That raises the question: why perf_disable() only takes care of hardware events? Very few software events can trigger between perf_disable() and perf_enable() sections though.
May be I should handle breakpoints there.
| |