04 Sep, 2013

3 commits


29 Oct, 2009

1 commit

  • This patch updates percpu related symbols in oprofile such that percpu
    symbols are unique and don't clash with local symbols. This serves
    two purposes of decreasing the possibility of global percpu symbol
    collision and allowing dropping per_cpu__ prefix from percpu symbols.

    * drivers/oprofile/cpu_buffer.c: s/cpu_buffer/op_cpu_buffer/

    Partly based on Rusty Russell's "alloc_percpu: rename percpu vars
    which cause name clashes" patch.

    Signed-off-by: Tejun Heo
    Acked-by: Robert Richter
    Cc: Rusty Russell

    Tejun Heo
     

20 Jul, 2009

2 commits

  • This patch moves the multiplexing switch counter from x86 code to
    common oprofile statistic variables. Now the value will be available
    and usable for all architectures. The initialization and
    incrementation also moved to common code.

    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
     

10 Jul, 2009

1 commit


16 Oct, 2008

2 commits


28 Apr, 2008

1 commit


15 Nov, 2007

1 commit

  • Instruction pointer returned by profile_pc() can be a random value. This
    break the assumption than we can safely set struct op_sample.eip field to a
    magic value to signal to the per-cpu buffer reader side special event like
    task switch ending up in a segfault in get_task_mm() when profile_pc()
    return ~0UL. Fixed by sanitizing the sampled eip and reject/log invalid
    eip.

    Problem reported by Sami Farin, patch tested by him.

    Signed-off-by: Philippe Elie
    Tested-by: Sami Farin
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Philippe Elie
     

29 Mar, 2006

1 commit


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