IP Library Granted Patent US 9,361,176
Granted Patent B2
US 9,361,176 · App. 14/314,630 · Granted Jun 7, 2016

Detecting the use of stale data values due to weak consistency

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,361,176
App. No.
14/314,630
Granted
Jun 7, 2016
Kind
B2
Abstract

An apparatus and method detect the use of stale data values due to weak consistency between parallel threads on a computer system. A consistency error detection mechanism uses object code injection to build a consistency error detection table during the operation of an application. When the application is paused, the consistency error detection mechanism uses the consistency error detection table to detect consistency errors where stale data is used by the application. The consistency error detection mechanism alerts the user/programmer to the consistency errors in the application program.

Claims (31)

1. An apparatus comprising:

at least one processor;

a memory coupled to the at least one processor;

a parallel application residing in the memory and executed by the at least one processor;

a consistency error detection mechanism residing in the memory and executed by the at least one processor that builds a consistency error detection table during operation of parallel threads of the parallel application;

wherein the consistency error detection mechanism detects the use of stale data values due to weak consistency between parallel threads of the parallel application by analyzing the consistency error detection table; and

wherein the consistency error detection mechanism builds the consistency error detection table during the operation of the parallel application using object code injected into the parallel application.

2. The apparatus of claim 1 wherein the consistency error detection mechanism analyzes the consistency error detection table when the parallel application is paused to detect the use of stale data by the parallel application.

3. The apparatus of claim 2 wherein the consistency error detection mechanism determines a consistency error where there is a match between a first thread using a stored address to store a stored value and a second thread loading a load value from the stored address at a later point in time where the load value is not consistent with the stored value.

4. The apparatus of claim 2 wherein the consistency error detection mechanism creates a list of stores and a list of loads to the same address from the consistency error detection table and then finds matches in the two lists where the loads and stores are inconsistent to detect consistency errors.

5. The apparatus of claim 1 wherein the consistency error detection mechanism alerts the user/programmer to the consistency errors in the parallel application.

6. The apparatus of claim 1 comprising at least two processors each having a parallel thread.

7. The apparatus of claim 1 wherein the consistency error detection table comprises records for a plurality of application threads where each record comprises a time, an instruction, an address and a value stored at the address.

8. An apparatus comprising:

at least one processor;

a memory coupled to the at least one processor;

a parallel application residing in the memory and executed by the at least one processor;

a consistency error detection mechanism residing in the memory and executed by the at least one processor that builds a consistency error detection table during operation of parallel threads of the parallel application;

wherein the consistency error detection mechanism detects the use of stale data values due to weak consistency between parallel threads of the parallel application by analyzing the consistency error detection table; and

wherein the consistency error detection mechanism analyzes the consistency error detection table when the parallel application is paused to detect the use of stale data by the parallel application.

9. The apparatus of claim 8 wherein the consistency error detection mechanism determines a consistency error where there is a match between a first thread using a stored address to store a stored value and a second thread loading a load value from the stored address at a later point in time where the load value is not consistent with the stored value.

10. The apparatus of claim 8 wherein the consistency error detection mechanism creates a list of stores and a list of loads to the same address from the consistency error detection table and then finds matches in the two lists where the loads and stores are inconsistent to detect consistency errors.

11. The apparatus of claim 8 wherein the consistency error detection table comprises records for a plurality of application threads where each record comprises a time, an instruction, an address and a value stored at the address.

12. An apparatus comprising:

at least one processor;

a memory coupled to the at least one processor;

a parallel application residing in the memory and executed by the at least one processor;

a consistency error detection mechanism residing in the memory and executed by the at least one processor that builds a consistency error detection table during operation of parallel threads of the parallel application;

wherein the consistency error detection mechanism detects the use of stale data values due to weak consistency between parallel threads of the parallel application by analyzing the consistency error detection table; and

wherein the consistency error detection mechanism alerts the user/programmer to the consistency errors in the parallel application.

13. The apparatus of claim 12 wherein the consistency error detection table comprises records for a plurality of application threads where each record comprises a time, an instruction, an address and a value stored at the address.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: BATES, CARY L.; HELGESON, LEE; KING, JUSTIN K.; SCHLICHT, MICHELLE A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033177/0417 →