Stale pointer detection with overlapping versioned memory
First Claim
Patent Images
1. A method for managing virtual memory (VM) comprising:
- incrementing, in response to updating a status of a VM location in a freed VM location list, a version of the VM location to generate a first VM location version value for the VM location;
generating a first versioned VM address based on the first VM location version value;
receiving, from an application, a first access request comprising the first versioned VM address identifying the VM location;
obtaining, in response to the first access request, the first VM location version value from the first versioned VM address;
comparing, in response to the first access request, a first current VM location version value and the first VM location version value to determine a match, wherein the first current VM location version value corresponds to the version of the VM location concurrent with the first access request; and
servicing, in response to the match, the first access request using the first versioned VM address.
1 Assignment
0 Petitions
Accused Products
Abstract
In general, in one aspect, the invention relates to a method for managing virtual memory (VM). The method includes receiving, from an application, a first access request comprising a first VM address identifying a VM location, obtaining a current VM location version value for the VM location, obtaining a first submitted VM location version value from the first VM address, and in response to a determination that the current VM location version value and the first submitted VM location version value match: servicing the first access request using the first VM address.
13 Citations
20 Claims
-
1. A method for managing virtual memory (VM) comprising:
-
incrementing, in response to updating a status of a VM location in a freed VM location list, a version of the VM location to generate a first VM location version value for the VM location; generating a first versioned VM address based on the first VM location version value; receiving, from an application, a first access request comprising the first versioned VM address identifying the VM location; obtaining, in response to the first access request, the first VM location version value from the first versioned VM address; comparing, in response to the first access request, a first current VM location version value and the first VM location version value to determine a match, wherein the first current VM location version value corresponds to the version of the VM location concurrent with the first access request; and servicing, in response to the match, the first access request using the first versioned VM address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable medium comprising instructions that, when executed by a processor, perform a method for managing virtual memory (VM), the method comprising:
-
incrementing, in response to updating a status of a VM location in a freed VM location list, a version of the VM location to generate a first VM location version value for the VM location; generating a first versioned VM address based on the first VM location version value; receiving, from an application, a first access request comprising the first versioned VM address identifying the VM location; obtaining, in response to the first access request, the first VM location version value from the first versioned VM address; comparing, in response to the first access request, a first current VM location version value and the first VM location version value to determine a match, wherein the first current VM location version value corresponds to the version of the VM location concurrent with the first access request; and servicing, in response to the match, the first access request using the first versioned VM address. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
physical memory; a virtual memory (VM) manager configured to; increment, in response to updating a status of a VM location in a freed VM location list, a version of the VM location to generate a VM location version value for the VM location; generate a versioned VM address based on the VM location version value; receive, from an application, an access request comprising the versioned VM address corresponding to the VM location; obtain, in response to the access request, the VM location version value from the versioned VM address; and compare, in response to the access request, a current VM location version value and the VM location version value to determine a match, wherein the current VM location version value corresponds to the version of the VM location concurrent with the first access request; and a central processing unit configured to; in response to the match, service the access request using the versioned VM address. - View Dependent Claims (20)
-
Specification