lkml.org 
[lkml]   [2010]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch 4/4] Handle memory unmap while hardware sampling is running
From: graalfs@linux.vnet.ibm.com

During memory unmap hardware sampling is deactivated.
After all samples have been collected hardware sampling is reactivated again.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Maran Pakkirisamy <maranp@linux.vnet.ibm.com>
Signed-off-by: Heinz Graalfs <graalfs@linux.vnet.ibm.com>
---
arch/s390/oprofile/hwsampler_files.c | 2 +-
drivers/oprofile/buffer_sync.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
Index: linux-2.6/drivers/oprofile/buffer_sync.c
===================================================================
--- linux-2.6.orig/drivers/oprofile/buffer_sync.c
+++ linux-2.6/drivers/oprofile/buffer_sync.c
@@ -32,6 +32,11 @@
#include <linux/sched.h>
#include <linux/gfp.h>

+#ifdef CONFIG_OPROFILE_HWSAMPLING_MODE
+#include <asm/hwsampler.h>
+extern unsigned long oprofile_hwsampler;
+#endif
+
#include "oprofile_stats.h"
#include "event_buffer.h"
#include "cpu_buffer.h"
@@ -513,6 +518,10 @@ void sync_buffer(int cpu)

mutex_lock(&buffer_mutex);

+#ifdef CONFIG_OPROFILE_HWSAMPLING_MODE
+ if (oprofile_hwsampler)
+ hwsampler_deactivate(cpu);
+#endif
add_cpu_switch(cpu);

op_cpu_buffer_reset(cpu);
@@ -569,6 +578,10 @@ void sync_buffer(int cpu)

mark_done(cpu);

+#ifdef CONFIG_OPROFILE_HWSAMPLING_MODE
+ if (oprofile_hwsampler)
+ hwsampler_activate(cpu);
+#endif
mutex_unlock(&buffer_mutex);
}

Index: linux-2.6/arch/s390/oprofile/hwsampler_files.c
===================================================================
--- linux-2.6.orig/arch/s390/oprofile/hwsampler_files.c
+++ linux-2.6/arch/s390/oprofile/hwsampler_files.c
@@ -22,7 +22,7 @@ unsigned long oprofile_max_interval;
static unsigned long oprofile_sdbt_blocks = DEFAULT_SDBT_BLOCKS;
static unsigned long oprofile_sdb_blocks = DEFAULT_SDB_BLOCKS;

-static unsigned long oprofile_hwsampler;
+unsigned long oprofile_hwsampler;

static int oprofile_hwsampler_start(void)
{


\
 
 \ /
  Last update: 2010-12-20 14:09    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site