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: perf: Fix callchain hit bad cast on ascii display arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single CPU watchdog: Improve initialisation error message and documentation
This commit is contained in:
commit
03ed6a3aa6
|
@ -1759,7 +1759,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
|
|
||||||
nousb [USB] Disable the USB subsystem
|
nousb [USB] Disable the USB subsystem
|
||||||
|
|
||||||
nowatchdog [KNL] Disable the lockup detector.
|
nowatchdog [KNL] Disable the lockup detector (NMI watchdog).
|
||||||
|
|
||||||
nowb [ARM]
|
nowb [ARM]
|
||||||
|
|
||||||
|
|
|
@ -630,21 +630,29 @@ static int __init_ibs_nmi(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initialize the APIC for the IBS interrupts if available */
|
/*
|
||||||
|
* check and reserve APIC extended interrupt LVT offset for IBS if
|
||||||
|
* available
|
||||||
|
*
|
||||||
|
* init_ibs() preforms implicitly cpu-local operations, so pin this
|
||||||
|
* thread to its current CPU
|
||||||
|
*/
|
||||||
|
|
||||||
static void init_ibs(void)
|
static void init_ibs(void)
|
||||||
{
|
{
|
||||||
|
preempt_disable();
|
||||||
|
|
||||||
ibs_caps = get_ibs_caps();
|
ibs_caps = get_ibs_caps();
|
||||||
|
|
||||||
if (!ibs_caps)
|
if (!ibs_caps)
|
||||||
return;
|
goto out;
|
||||||
|
|
||||||
if (__init_ibs_nmi()) {
|
if (__init_ibs_nmi() < 0)
|
||||||
ibs_caps = 0;
|
ibs_caps = 0;
|
||||||
return;
|
else
|
||||||
}
|
printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
|
||||||
|
|
||||||
printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n",
|
out:
|
||||||
(unsigned)ibs_caps);
|
preempt_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int (*create_arch_files)(struct super_block *sb, struct dentry *root);
|
static int (*create_arch_files)(struct super_block *sb, struct dentry *root);
|
||||||
|
|
|
@ -364,7 +364,8 @@ static int watchdog_nmi_enable(int cpu)
|
||||||
goto out_save;
|
goto out_save;
|
||||||
}
|
}
|
||||||
|
|
||||||
printk(KERN_ERR "NMI watchdog failed to create perf event on cpu%i: %p\n", cpu, event);
|
printk(KERN_ERR "NMI watchdog disabled for cpu%i: unable to create perf event: %ld\n",
|
||||||
|
cpu, PTR_ERR(event));
|
||||||
return PTR_ERR(event);
|
return PTR_ERR(event);
|
||||||
|
|
||||||
/* success path */
|
/* success path */
|
||||||
|
|
|
@ -356,7 +356,7 @@ static size_t ipchain__fprintf_graph_line(FILE *fp, int depth, int depth_mask,
|
||||||
|
|
||||||
static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,
|
static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,
|
||||||
int depth, int depth_mask, int period,
|
int depth, int depth_mask, int period,
|
||||||
u64 total_samples, int hits,
|
u64 total_samples, u64 hits,
|
||||||
int left_margin)
|
int left_margin)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Reference in a new issue