• Markus Metzger's avatar
    x86, bts: fix race when bts tracer is removed · cac94f97
    Markus Metzger authored
    When the bts tracer is removed while the traced task is running,
    the write to clear the bts tracer pointer races with context switch code.
    
    Read the tracer once during a context switch.
    
    When a new tracer is installed, the bts tracer is set in the ds context
    before the tracer is initialized in order to claim the context for that
    tracer.
    
    This may result in write accesses using an uninitialized trace configuration
    when scheduling timestamps have been requested.
    
    Store active tracing flags separately and only set active flags after
    the tracing configuration has been initialized.
    Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
    Signed-off-by: default avatarMarkus Metzger <markus.t.metzger@intel.com>
    Cc: roland@redhat.com
    Cc: eranian@googlemail.com
    Cc: juan.villacis@intel.com
    Cc: ak@linux.jf.intel.com
    LKML-Reference: <20090403144548.881338000@intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    cac94f97
ds.c 25.5 KB