Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar. * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: watchdog: Quiet down the boot messages perf/x86: Fix broken LBR fixup code tracing: Have tracing_off() actually turn tracing off
This commit is contained in:
commit
ed21a66c18
3 changed files with 20 additions and 3 deletions
|
@ -22,7 +22,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
|
|||
void *map;
|
||||
int ret;
|
||||
|
||||
if (__range_not_ok(from, n, TASK_SIZE) == 0)
|
||||
if (__range_not_ok(from, n, TASK_SIZE))
|
||||
return len;
|
||||
|
||||
do {
|
||||
|
|
|
@ -371,7 +371,7 @@ EXPORT_SYMBOL_GPL(tracing_on);
|
|||
void tracing_off(void)
|
||||
{
|
||||
if (global_trace.buffer)
|
||||
ring_buffer_record_on(global_trace.buffer);
|
||||
ring_buffer_record_off(global_trace.buffer);
|
||||
/*
|
||||
* This flag is only looked at when buffers haven't been
|
||||
* allocated yet. We don't really care about the race
|
||||
|
|
|
@ -372,6 +372,13 @@ static int watchdog(void *unused)
|
|||
|
||||
|
||||
#ifdef CONFIG_HARDLOCKUP_DETECTOR
|
||||
/*
|
||||
* People like the simple clean cpu node info on boot.
|
||||
* Reduce the watchdog noise by only printing messages
|
||||
* that are different from what cpu0 displayed.
|
||||
*/
|
||||
static unsigned long cpu0_err;
|
||||
|
||||
static int watchdog_nmi_enable(int cpu)
|
||||
{
|
||||
struct perf_event_attr *wd_attr;
|
||||
|
@ -390,11 +397,21 @@ static int watchdog_nmi_enable(int cpu)
|
|||
|
||||
/* Try to register using hardware perf events */
|
||||
event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, watchdog_overflow_callback, NULL);
|
||||
|
||||
/* save cpu0 error for future comparision */
|
||||
if (cpu == 0 && IS_ERR(event))
|
||||
cpu0_err = PTR_ERR(event);
|
||||
|
||||
if (!IS_ERR(event)) {
|
||||
pr_info("enabled, takes one hw-pmu counter.\n");
|
||||
/* only print for cpu0 or different than cpu0 */
|
||||
if (cpu == 0 || cpu0_err)
|
||||
pr_info("enabled on all CPUs, permanently consumes one hw-PMU counter.\n");
|
||||
goto out_save;
|
||||
}
|
||||
|
||||
/* skip displaying the same error again */
|
||||
if (cpu > 0 && (PTR_ERR(event) == cpu0_err))
|
||||
return PTR_ERR(event);
|
||||
|
||||
/* vary the KERN level based on the returned errno */
|
||||
if (PTR_ERR(event) == -EOPNOTSUPP)
|
||||
|
|
Loading…
Reference in a new issue