04 Sep, 2013

2 commits


07 Dec, 2011

1 commit


04 Nov, 2011

1 commit

  • The legacy x86 nmi watchdog code was removed with the implementation
    of the perf based nmi watchdog. This broke Oprofile's nmi timer
    mode. To run nmi timer mode we relied on a continuous ticking nmi
    source which the nmi watchdog provided. The nmi tick was no longer
    available and current watchdog can not be used anymore since it runs
    with very long periods in the range of seconds. This patch
    reimplements the nmi timer mode using a perf counter nmi source.

    V2:
    * removing pr_info()
    * fix undefined reference to `__udivdi3' for 32 bit build
    * fix section mismatch of .cpuinit.data:nmi_timer_cpu_nb
    * removed nmi timer setup in arch/x86
    * implemented function stubs for op_nmi_init/exit()
    * made code more readable in oprofile_init()

    V3:
    * fix architectural initialization in oprofile_init()
    * fix CONFIG_OPROFILE_NMI_TIMER dependencies

    Acked-by: Peter Zijlstra
    Signed-off-by: Robert Richter

    Robert Richter
     

12 Oct, 2010

1 commit

  • Oprofile counters are setup when profiling is disabled. Thus, writing
    to oprofilefs has no immediate effect. Changes are updated only after
    oprofile is reenabled.

    To keep userland and kernel states synchronized, we now allow
    configuration of oprofile only if profiling is disabled. In this case
    it checks if the profiler is running and then disables write access to
    oprofilefs by returning -EBUSY. The change should be backward
    compatible with current oprofile userland daemon.

    Acked-by: Maynard Johnson
    Cc: William Cohen
    Cc: Suravee Suthikulpanit
    Signed-off-by: Robert Richter

    Robert Richter
     

03 Mar, 2010

1 commit

  • Oprofile is currently broken on systems running with NOHZ enabled.
    A maximum of 1 tick is accounted via the timer_hook if a cpu sleeps
    for a longer period of time. This does bad things to the percentages
    in the profiler output. To solve this problem convert oprofile to
    use a restarting hrtimer instead of the timer_hook.

    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Robert Richter

    Martin Schwidefsky
     

20 Jul, 2009

2 commits

  • This patch renames timeout_jiffies into an oprofile specific name. The
    macro MULTIPLEXING_TIMER_DEFAULT is changed too.

    Also, since this variable is controlled using oprofilefs, its
    definition is moved to oprofile_files.c.

    Signed-off-by: Robert Richter

    Robert Richter
     
  • The number of hardware counters is limited. The multiplexing feature
    enables OProfile to gather more events than counters are provided by
    the hardware. This is realized by switching between events at an user
    specified time interval.

    A new file (/dev/oprofile/time_slice) is added for the user to specify
    the timer interval in ms. If the number of events to profile is higher
    than the number of hardware counters available, the patch will
    schedule a work queue that switches the event counter and re-writes
    the different sets of values into it. The switching mechanism needs to
    be implemented for each architecture to support multiplexing. This
    patch only implements AMD CPU support, but multiplexing can be easily
    extended for other models and architectures.

    There are follow-on patches that rework parts of this patch.

    Signed-off-by: Jason Yeh
    Signed-off-by: Robert Richter

    Jason Yeh
     

17 Dec, 2008

1 commit


16 Oct, 2008

2 commits


24 Sep, 2008

1 commit


26 Jul, 2008

1 commit

  • This patch introduces multiplexing support for the Oprofile kernel
    module. It basically adds a new function pointer in oprofile_operator
    allowing each architecture to supply its callback to switch between
    different sets of event when the timer expires. Userspace tools can
    modify the time slice through /dev/oprofile/time_slice.

    It also modifies the number of counters exposed to the userspace through
    /dev/oprofile. For example, the number of counters for AMD CPUs are
    changed to 32 and multiplexed in the sets of 4.

    Signed-off-by: Jason Yeh
    Signed-off-by: Robert Richter
    Cc: oprofile-list
    Signed-off-by: Ingo Molnar

    Jason Yeh
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds