An apparatus to detect race conditions comprising: a processor component, comprising a monitoring unit; a trigger component for execution by the processor component to configure the monitoring unit to detect a cache event associated with a race condition between accesses to a piece of data including to detect a cache event associated with a race condition between a first access to the piece of data by a first portion of an application routine executed by the processor component and a second access to the piece of data by a second portion of the application routine, and to capture an indication of a state of the processor component to generate monitoring data in response to an occurrence of the cache event; and a counter component for execution by the processor component to configure a counter of the monitoring unit to enable capture of the indication of the state of the processor component at a frequency less than every occurrence of the cache event; and a filter component for execution by the processor component to: retrieve identifiers of at least one of the first portion, the second portion, a core of the processor component that executes one of the first and second portions, or a thread of execution of one of the first and second portions; compare said identifiers to identifiers of the monitoring data to determine whether the race condition is between the first and second accesses; and remove from the monitoring data the captured indication based on the determination that the cache event does not arise from the race condition between the first and the second accesses to generate reduced data comprising a subset of multiple indications of the state of the first processor component of the monitoring data. a processor component, comprising a monitoring unit; a trigger component for execution by the processor component to configure the monitoring unit to detect a cache event associated with a race condition between accesses to a piece of data including to detect a cache event associated with a race condition between a first access to the piece of data by a first portion of an application routine executed by the processor component and a second access to the piece of data by a second portion of the application routine, and to capture an indication of a state of the processor component to generate monitoring data in response to an occurrence of the cache event; and a counter component for execution by the processor component to configure a counter of the monitoring unit to enable capture of the indication of the state of the processor component at a frequency less than every occurrence of the cache event; and a filter component for execution by the processor component to: retrieve identifiers of at least one of the first portion, the second portion, a core of the processor component that executes one of the first and second portions, or a thread of execution of one of the first and second portions; compare said identifiers to identifiers of the monitoring data to determine whether the race condition is between the first and second accesses; and remove from the monitoring data the captured indication based on the determination that the cache event does not arise from the race condition between the first and the second accesses to generate reduced data comprising a subset of multiple indications of the state of the first processor component of the monitoring data. retrieve identifiers of at least one of the first portion, the second portion, a core of the processor component that executes one of the first and second portions, or a thread of execution of one of the first and second portions; compare said identifiers to identifiers of the monitoring data to determine whether the race condition is between the first and second accesses; and remove from the monitoring data the captured indication based on the determination that the cache event does not arise from the race condition between the first and the second accesses to generate reduced data comprising a subset of multiple indications of the state of the first processor component of the monitoring data.