IP Library Granted Patent US 7,500,074
Granted Patent B2
US 7,500,074 · App. 11/479,664 · Granted Mar 3, 2009

Identifying relocatable kernel mappings

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 7,500,074
App. No.
11/479,664
Granted
Mar 3, 2009
Kind
B2
Abstract

An approach for partitioning virtual memory address space and identifying relocatable and non-relocatable regions of memory is provided. In one embodiment, the allocations of physical addresses and kernel virtual memory addresses are partitioned into relocatable and non-relocatable regions such that, by inspecting a virtual address, the property of the physical memory (relocatable or non-relocatable) is identified.

Claims (47)

1. A machine-implemented method for memory management, the method comprising:

logically partitioning kernel virtual memory address space into relocatable and non-relocatable regions;

identifying a virtual address associated with a physical page in a non-relocatable region of physical memory;

determining whether the virtual address associated with the physical page is located in the relocatable or non-relocatable region of kernel virtual address space; and

if the virtual address is located in the relocatable region of kernel virtual address space, relocating the physical page to the relocatable region of physical memory.

2. The method of claim 1 , wherein the physical address associated with said virtual page is located in the non-relocatable region of physical memory.

3. The method of claim 1 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises modifying data that indicates the location of the physical page.

4. The method of claim 1 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises:

during the relocation, preventing a process from accessing the physical page;

after the relocation is complete, notifying the process of the new location of the physical page.

5. The method of claim 1 , wherein the step of determining whether the virtual address associated with the physical page is located in the relocatable or non-relocatable region of kernel virtual address space further comprises:

identifying the virtual address associated with the physical page by examining a data structure comprising the virtual page.

6. The method of claim 1 , further comprising:

for each virtual page associated with non-relocatable kernel virtual memory address space, automatically identifying whether the virtual address of the virtual page references the relocatable or non-relocatable region of kernel virtual memory address space.

7. A machine-implemented method for memory management, the method comprising:

logically partitioning kernel virtual memory address space into relocatable and non-relocatable regions;

in response to a first request to allocate relocatable physical memory, performing particular steps comprising:

causing physical memory to be allocated from a non-relocatable portion of physical memory;

allocating one or more virtual addresses associated with the allocated physical memory from the relocatable region of kernel virtual memory address space;

in response to a second request to allocate non-relocatable physical memory, performing particular steps comprising:

examining a physical page of non-relocatable physical memory;

identifying a virtual address associated with the physical page of non-relocatable physical memory;

determining whether the virtual address associated with the physical page of non-relocatable physical memory is located in a relocatable or non-relocatable region of kernel virtual memory address space;

if the virtual address associated with the physical page of non-relocatable physical memory is located in a relocatable region of kernel virtual memory address space, relocating the physical page into a relocatable portion of physical memory; and

updating the virtual address associated with the physical page to identify the relocated physical page.

8. The method of claim 7 , wherein the physical pages of physical memory are associated with either a list of free relocatable pages or a list of free non-relocatable pages.

9. The method of claim 7 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises modifying data that indicates the location of the physical page.

10. The method of claim 7 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises:

during the relocation, preventing a process from accessing the physical page;

after the relocation is complete, notifying the process of the new location of the physical page.

11. The method of claim 7 , wherein the step of determining whether the virtual address associated with the physical page is located in the relocatable or non-relocatable region of kernel virtual address space further comprises:

identifying the virtual address associated with the physical page by examining a data structure comprising the virtual page.

12. The method of claim 7 , further comprising:

for each physical page located in non-relocatable physical memory, automatically identifying whether a virtual address associated with the physical page references the relocatable or non-relocatable region of kernel virtual memory address space.

13. A machine-implemented method for memory management, the method comprising:

logically partitioning physical memory into relocatable and non-relocatable regions;

in response to a request to allocate relocatable physical memory, performing particular steps comprising:

causing pages of physical memory to be allocated from the non-relocatable portion of physical memory;

storing an indicator in the page structure of the allocated pages of physical memory, the indicator designating relocatable physical memory;

in response to a request to free pages of non-relocatable physical memory, performing particular steps comprising:

analyzing the indicator in all page structures associated with allocated pages of non-relocatable physical memory;

if the indicator designates relocatable physical memory, then relocating the physical page into the relocatable region of physical memory.

14. The method of claim 13 , wherein the physical pages of physical memory are associated with either a list of free relocatable pages or a list of free non-relocatable pages.

15. The method of claim 13 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises modifying data that indicates the location of the physical page.

16. The method of claim 13 , wherein the step of relocating the physical page to the relocatable region of physical memory further comprises:

during the relocation, preventing a process from accessing the physical page;

after the relocation is complete, notifying the process of the new location of the physical page.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2006
From: CHOLLETI, UDAYAKUMAR; MCENROE, SEAN; STUDZINSKI, STAN J.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018145/0371 →