Stale pointer detection with overlapping versioned memory
AssigneeOracle International Corporation
InventorsRaj Prakash, Sheldon M. Lobo
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.