perf fixes
Subsystems (3)
Linus,
Please pull the latest perf-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git perf-fixes-for-linus
Thanks,
Ingo
------------------>
Ben Hutchings (1):
watchdog: Improve initialisation error message and documentation
Frederic Weisbecker (1):
perf: Fix callchain hit bad cast on ascii display
Robert Richter (1):
arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single CPU
Documentation/kernel-parameters.txt | 2 +- arch/x86/oprofile/op_model_amd.c | 24 ++++++++++++++++-------- kernel/watchdog.c | 3 ++- tools/perf/util/hist.c | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-)
Documentation/kernel-parameters.txt +1 -1
@@ -1759,7 +1759,7 @@ and is between 256 and 4096 characters. It is defined in the file nousb [USB] Disable the USB subsystem - nowatchdog [KNL] Disable the lockup detector. + nowatchdog [KNL] Disable the lockup detector (NMI watchdog). nowb [ARM]
arch/x86/oprofile/op_model_amd.c +16 -8
@@ -630,21 +630,29 @@ static int __init_ibs_nmi(void)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 ) { - ibs_caps =get_ibs_caps (); +preempt_disable (); + ibs_caps =get_ibs_caps ();if (!ibs_caps) -return ; + goto out; -if (__init_ibs_nmi ()) { +if (__init_ibs_nmi () <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" , - (unsigned )ibs_caps); +out: +preempt_enable (); }static int (*create_arch_files)(struct super_block *sb,struct dentry *root);
kernel/watchdog.c +2 -1
@@ -364,7 +364,8 @@ static int watchdog_nmi_enable(int cpu) 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);/* success path */
tools/perf/util/hist.c +1 -1
@@ -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,int depth,int depth_mask,int period, -u64 total_samples,int hits, +u64 total_samples,u64 hits,int left_margin) {int i;