Obscuring memory access patterns in conjunction with deadlock detection or avoidance
First Claim
1. A computer-implemented method, comprising:
- executing, via a first thread, one or more instructions to register a handler module to be invoked in response to an access, via a second thread, to one or more specified memory locations;
transferring control from the first thread to the handler module in response to data being evicted, via the access by the second thread, from one or more of the specified memory locations;
recording, in a register, an address of a second instruction of the first thread that was executing at the time of control transfer to the handler module;
incrementing an address-specific counter in response to each control transfer to the handler module such that the address-specific counter represents a number of times the handler module was invoked from the recorded address while the second instruction was executing; and
executing a deadlock policy responsive to the address-specific counter exceeding a maximum acceptable value, the deadlock policy affecting the first thread in response to execution.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus and systems for memory access obscuration are provided. A first embodiment provides memory access obscuration in conjunction with deadlock avoidance. Such embodiment utilizes processor features including an instruction to enable monitoring of specified cache lines and an instruction that sets a status bit responsive to any foreign access (e.g., write or eviction due to a read) to the specified lines. A second embodiment provides memory access obscuration in conjunction with deadlock detection. Such embodiment utilizes the monitoring feature, as well as handler registration. A user-level handler may be asynchronously invoked responsive to a foreign write to any of the specified lines. Invocation of the handler more frequently than expected indicates that a deadlock may have been encountered. In such case, a deadlock policy may be enforced. Other embodiments are also described and claimed.
-
Citations
13 Claims
-
1. A computer-implemented method, comprising:
-
executing, via a first thread, one or more instructions to register a handler module to be invoked in response to an access, via a second thread, to one or more specified memory locations; transferring control from the first thread to the handler module in response to data being evicted, via the access by the second thread, from one or more of the specified memory locations; recording, in a register, an address of a second instruction of the first thread that was executing at the time of control transfer to the handler module; incrementing an address-specific counter in response to each control transfer to the handler module such that the address-specific counter represents a number of times the handler module was invoked from the recorded address while the second instruction was executing; and executing a deadlock policy responsive to the address-specific counter exceeding a maximum acceptable value, the deadlock policy affecting the first thread in response to execution. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article comprising:
-
a non-transitory storage medium having a plurality of machine accessible instructions;
wherein, when the instructions are executed by a processor, the instructions provide for;
executing, via a first thread, one or more instructions to register a handler module to be invoked in response to an access, via a second thread, to one or more specified memory locations;transferring control from the first thread to the handler module in response to data being evicted, via the access by the second thread, from one or more of the specified memory locations; recording an address of an instruction of the first thread that was executing at the time of control transfer to the handler module; incrementing an address-specific counter in response to each control transfer to the handler module such that the address-specific counter represents a number of times the handler module was invoked from the recorded address while the associated instruction of the first thread was executing; and executing a deadlock policy responsive to the address-specific counter exceeding a maximum acceptable value, the deadlock policy affecting the first thread in response to execution. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system, comprising:
-
a memory resource coupled to a first thread unit and a second thread unit; the first thread unit including in its instruction set architecture an instruction to monitor a specified location of the memory resource; wherein the instruction set architecture of the first thread unit further includes an instruction to register a handler module to be invoked in response to modification of data at said specified location by the second thread unit; and wherein the memory resource is further to store code that includes instructions to (i) increment an address-specific counter each time the handler module is invoked such that the address-specific counter represents a number of times control was transferred from the first thread unit to the handler module while the first thread unit was executing an instruction at an address indicated by the address-specific counter and (ii) execute a deadlock policy, in response to the address-specific counter having a predetermined relationship with a maximum value, the deadlock policy affecting the first thread unit in response to execution.
-
Specification