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    [W:0.024 / U:2.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site