Techniques for detecting race conditions

US10120781B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10120781-B2
Application numberUS-201315026515-A
CountryUS
Kind codeB2
Filing dateDec 12, 2013
Priority dateDec 12, 2013
Publication dateNov 6, 2018
Grant dateNov 6, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Various embodiments are generally directed to detecting race conditions arising from uncoordinated data accesses by different portions of an application routine by detecting occurrences of a selected cache event associated with such accesses. An apparatus includes a processor component; a trigger component for execution by the processor component to configure a monitoring unit of the processor component to detect a cache event associated with a race condition between accesses to a piece of data 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. Other embodiments are described and claimed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method for detecting race conditions comprising: detecting a cache event associated with a race condition between accesses to a piece of data by at least one application routine executed by a processor component, the cache event comprising a read-for-ownership (RFO) cache event or a hit-modified (HITM) cache event based on a cache coherency mechanism; recurringly capturing an indication of a state of the processor component as monitoring data in response to an occurrence of the cache event at a selected interval of multiple occurrences of the cache event, each instance of the indication of the state comprising an address of an instruction pointer of the processor component and a type of the cache event indicating whether the cache event is a RFO cache event or a HITM cache event; determining whether the race condition is a read operation of a first portion of the application routine and a write operation of a second portion of the at least one application routine based on an identifier 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; and removing the indication from the monitoring data based on the cache event not arising from the race condition between the read operation of the first portion of the application routine and the write operation of a second portion of the application routine to generate a reduced data comprising a subset of multiple indications of the state of the processor component of the monitoring data. 2. The computer-implemented method of claim 1 , comprising transmitting the reduced data to a debugging device via a network. 3. The computer-implemented method of claim 1 , the race condition comprising a race condition between a first write operation of the application routine executed by the processor component in a first thread of execution to write to the piece of data, and a second write operation of another application routine executed by the processor component in a second thread of execution to write to the piece of data. 4. The computer-implemented method of claim 1 , wherein each instance of the indication of the state comprises an identifier of a core to enable debugging. 5. An apparatus to detect race conditions comprising: a hardware processor component, comprising a monitoring unit; a trigger component stored in a memory which when executed by the processor component causes the monitoring unit to detect a cache event arising from a race condition between accesses to a piece of data 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, the cache event comprising a read-for-ownership (RFO) cache event or a hit-modified (HITM) cache event based on a cache coherency mechanism, and the indication of the state comprising an address of an instruction pointer of the processor component, a type of the cache event indicating whether the cache event is a RFO cache event or a HITM cache event, and an identifier of a core to enable debugging; 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: determine whether the race condition is 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 based on an identifier 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, and remove the indication from the monitoring data based on the cache event not arising from the race condition between the first access to the piece of data by the first portion of the application routine executed by the processor component and the second access to the piece of data by the second portion of the application routine to generate reduced data comprising a subset of multiple indications of the state of the processor component of the monitoring data. 6. The apparatus of claim 5 , the trigger component to dynamically enable the capture of the indication based on whether an application routine comprising multiple portions for concurrent execution by the processor component is currently executed by the processor component. 7. The apparatus of claim 5 , wherein the first access comprising a write operation and the second access comprising one of a read operation and a write operation. 8. The apparatus of claim 5 , the race condition comprising a race condition between a read operation of a first application routine executed by the processor component in a first thread of execution to read the piece of data, and a write operation of a second application routine executed by the processor component in a second thread of execution to write to the piece of data. 9. An apparatus to detect race conditions comprising: a first hardware processor component; a second hardware processor component; a trigger component stored in a memory which when executed by the processor components configure a monitoring unit of the first hardware processor component to detect a cache event associated with a race condition between accesses to a piece of data and to capture a first indication of a state of the first hardware processor component as a first monitoring data in response to an occurrence of the cache event, and to configure a monitoring unit of the second hardware processor component to detect the cache event and to capture a second indication of a state of the second hardware processor component as a second monitoring data in response to an occurrence of the cache event, the cache event comprising a read-for-ownership (RFO) cache event or a hit-modified (HITM) cache event based on a cache coherency mechanism; and a filter component to: determine whether the race condition is between first and second portions of an application routine based on an identifier of at least one of the first portion, the second portion, a core of the first hardware processor component that executes one of the first and second portions, a core of the second hardware processor component that executes one of the first and second portions, or a thread of execution of one of the first and second portions, and remove at least one of the first indication and the second indication in a reduced data based on the cache event not arising from the race condition between access to the piece of data by the first portion of an application routine executed by one of the first and second hardware processor components and the access to the piece of data by the second portion of the application routine executed by one of the first and second hardware processor components. 10. The apparatus of claim 9 , the trigger component to dynamically enable the capture of the first indication and the second indication based on whether an application routine comprising multiple portions for concurrent execution by at least one of the first hardware processor component and the second hardware processor component is currently executed by at least one of the first hardware processor component and the second hardware processor component. 11. The apparatus of claim 9 , comprising a counter component to confi

Assignees

Inventors

Classifications

  • of specific synchronisation aspects · CPC title

  • Mutual exclusion algorithms · CPC title

  • Monitoring · CPC title

  • in a system implementing multitasking (multitasking per se G06F9/46) · CPC title

  • by checking the correct order of processing (G06F11/08 - G06F11/26 take precedence; monitoring patterns of pulse trains H03K5/19) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10120781B2 cover?
Various embodiments are generally directed to detecting race conditions arising from uncoordinated data accesses by different portions of an application routine by detecting occurrences of a selected cache event associated with such accesses. An apparatus includes a processor component; a trigger component for execution by the processor component to configure a monitoring unit of the processor …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/3632. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 06 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).