Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits) trace, filters: Initialize the match variable in process_ops() properly trace, documentation: Fix branch profiling location in debugfs oprofile, s390: Cleanups oprofile, s390: Remove hwsampler_files.c and merge it into init.c perf: Fix tear-down of inherited group events perf: Reorder & optimize perf_event_context to remove alignment padding on 64 bit builds perf: Handle stopped state with tracepoints perf: Fix the software events state check perf, powerpc: Handle events that raise an exception without overflowing perf, x86: Use INTEL_*_CONSTRAINT() for all PEBS event constraints perf, x86: Clean up SandyBridge PEBS events perf lock: Fix sorting by wait_min perf tools: Version incorrect with some versions of grep perf evlist: New command to list the names of events present in a perf.data file perf script: Add support for H/W and S/W events perf script: Add support for dumping symbols perf script: Support custom field selection for output perf script: Move printing of 'common' data from print_event and rename perf tracing: Remove print_graph_cpu and print_graph_proc from trace-event-parse perf script: Change process_event prototype ...
This commit is contained in:
@@ -5122,7 +5122,7 @@ static int perf_exclude_event(struct perf_event *event,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
if (event->hw.state & PERF_HES_STOPPED)
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
if (regs) {
|
||||
if (event->attr.exclude_user && user_mode(regs))
|
||||
@@ -5478,6 +5478,8 @@ static int perf_tp_event_match(struct perf_event *event,
|
||||
struct perf_sample_data *data,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
if (event->hw.state & PERF_HES_STOPPED)
|
||||
return 0;
|
||||
/*
|
||||
* All tracepoints are from kernel-space.
|
||||
*/
|
||||
@@ -6720,17 +6722,20 @@ __perf_event_exit_task(struct perf_event *child_event,
|
||||
struct perf_event_context *child_ctx,
|
||||
struct task_struct *child)
|
||||
{
|
||||
struct perf_event *parent_event;
|
||||
if (child_event->parent) {
|
||||
raw_spin_lock_irq(&child_ctx->lock);
|
||||
perf_group_detach(child_event);
|
||||
raw_spin_unlock_irq(&child_ctx->lock);
|
||||
}
|
||||
|
||||
perf_remove_from_context(child_event);
|
||||
|
||||
parent_event = child_event->parent;
|
||||
/*
|
||||
* It can happen that parent exits first, and has events
|
||||
* It can happen that the parent exits first, and has events
|
||||
* that are still around due to the child reference. These
|
||||
* events need to be zapped - but otherwise linger.
|
||||
* events need to be zapped.
|
||||
*/
|
||||
if (parent_event) {
|
||||
if (child_event->parent) {
|
||||
sync_child_event(child_event, child);
|
||||
free_event(child_event);
|
||||
}
|
||||
|
@@ -275,7 +275,7 @@ config PROFILE_ANNOTATED_BRANCHES
|
||||
This tracer profiles all the the likely and unlikely macros
|
||||
in the kernel. It will display the results in:
|
||||
|
||||
/sys/kernel/debug/tracing/profile_annotated_branch
|
||||
/sys/kernel/debug/tracing/trace_stat/branch_annotated
|
||||
|
||||
Note: this will add a significant overhead; only turn this
|
||||
on if you need to profile the system's use of these macros.
|
||||
@@ -288,7 +288,7 @@ config PROFILE_ALL_BRANCHES
|
||||
taken in the kernel is recorded whether it hit or miss.
|
||||
The results will be displayed in:
|
||||
|
||||
/sys/kernel/debug/tracing/profile_branch
|
||||
/sys/kernel/debug/tracing/trace_stat/branch_all
|
||||
|
||||
This option also enables the likely/unlikely profiler.
|
||||
|
||||
|
@@ -391,8 +391,8 @@ static int process_ops(struct filter_pred *preds,
|
||||
struct filter_pred *op, void *rec)
|
||||
{
|
||||
struct filter_pred *pred;
|
||||
int match = 0;
|
||||
int type;
|
||||
int match;
|
||||
int i;
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user