Skip to content
  1. Oct 13, 2009
  2. Oct 10, 2009
    • Robert Richter's avatar
      oprofile: warn on freeing event buffer too early · c0868934
      Robert Richter authored
      
      
      A race shouldn't happen since all workqueues or handlers are canceled
      or flushed before the event buffer is freed. A warning is triggered
      now if the buffer is freed too early.
      
      Also, this patch adds some comments about event buffer protection,
      reworks some code and adds code to clear buffer_pos during alloc and
      free of the event buffer.
      
      Cc: David Rientjes <rientjes@google.com>
      Cc: Stephane Eranian <eranian@google.com>
      Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
      c0868934
    • David Rientjes's avatar
      oprofile: fix race condition in event_buffer free · 066b3aa8
      David Rientjes authored
      
      
      Looking at the 2.6.31-rc9 code, it appears there is a race condition
      in the event_buffer cleanup code path (shutdown). This could lead to
      kernel panic as some CPUs may be operating on the event buffer AFTER
      it has been freed. The attached patch solves the problem and makes
      sure CPUs check if the buffer is not NULL before they access it as
      some may have been spinning on the mutex while the buffer was being
      freed.
      
      The race may happen if the buffer is freed during pending reads. But
      it is not clear why there are races in add_event_entry() since all
      workqueues or handlers are canceled or flushed before the event buffer
      is freed.
      
      Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
      066b3aa8
  3. Oct 09, 2009
  4. Oct 08, 2009