# US 9,436,601 B2 · Categorizing memory pages based on page residences

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,601 B2
- Document ID: US9436601B2
- Status: Granted
- Kind: B2
- Application number: 14/485,968
- Filed: 2014-09-15
- Published: 2016-03-17
- Granted: 2016-09-06
- Earliest claimed: 2014-09-15
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Chetan L. Gaonkar; Lakshmi Priya; Chidambar Y. Kulkarni; Vamshi K. Thatikonda
- Web page: https://patentgrep.com/patent/US9436601B2

## CPC

- G06F 9/45529: {Embedded in an application, e.g. JavaScript in a Web browser}
- G06F 12/0284: {Multiple user address space allocation, e.g. using different base addresses (interprocessor communication G06F15/163)}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F 2212/251: Local memory within processor subsystem
- G06F 2212/656: Address space sharing
- G06F 2212/657: Virtual address space management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention provide hints for page stealing by prioritizing pages based on the number of residences. Receiving a plurality of pages to be hinted to a hypervisor for page stealing. Determining at least two page types of the plurality of pages. Determining whether any of the at least two page types has a total number of residences less than a total number of potential residences in the virtual environment for all page types and have a total number of residences less than a threshold. Responsive to determining a first page type of the at least two page types has a total number of residences less than a total number of potential residences for all page types and has a total number of residences less than a threshold, notifying the hypervisor of at least one page from the plurality of pages that is the determined first page type.

## Claims

### Claim 1

A method for providing hints for page stealing by prioritizing pages based on the number of residences for the pages in a virtual environment comprising:
receiving, by one or more computer processors, a plurality of pages that are candidates to be hinted to a hypervisor for page stealing;
determining, by one or more computer processors, at least two page types from the plurality of pages;
determining, by one or more computer processors, whether any of the at least two page types have a total number of residences less than a total number of potential residences in a virtual environment for all page types and have a total number of residences less than a threshold; and
responsive to determining a first page type of the at least two page types has a total number of residences less than a total number of potential residences in the virtual environment for all page types and has a total number of residences less than a threshold, notifying, by one or more computer processors, the hypervisor of at least one page, from the plurality of pages, that is of the first page type.

### Claim 2 (depends on 1)

The method of claim 1, wherein the page type include at least one of Klock (Kernel pages), working segment pages, remote pages, and persistent pages.

### Claim 3 (depends on 1)

The method of claim 1, wherein the threshold is determined by at least one of a user of the virtual environment in real time, an administrator of the virtual environment upon creation of the virtual environment, and an operating system of the virtual environment.

### Claim 4 (depends on 1)

The method of claim 1, wherein the total number of residences include at least one of paging space, shared memory pool, and main memory.

### Claim 5 (depends on 1)

The method of claim 1, wherein paging space further comprises paging space found on a computer that hosts the hypervisor or on a computer in a remote location.

### Claim 6

A computer program product for providing hints for page stealing by prioritizing pages based on the number of residences for the pages in a virtual environment comprising:
one or more computer-readable tangible storage media; and
program instructions stored on the one or more computer-readable tangible storage media, the program instructions comprising:
program instructions to receive a plurality of pages that are candidates to be hinted to a hypervisor for page stealing;
program instructions to determine at least two page types from the plurality of pages;
program instructions to determine whether any of the at least two page types have a total number of residences less than a total number of potential residences in a virtual environment for all page types and have a total number of residences less than a threshold; and
program instructions, responsive to determining a first page type of the at least two page types has a total number of residences less than a total number of potential residences in a virtual environment for all page types and has a total number of residences less than a threshold, to notify the hypervisor of at least one page, from the plurality of pages, that is of the first page type.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein the page type include at least one of Klock (Kernel pages), working segment pages, remote pages, and persistent pages.

### Claim 8 (depends on 6)

The computer program product of claim 6, wherein the threshold is determined by at least one of a user of the virtual environment in real time, an administrator of the virtual environment upon creation of the virtual environment, and an operating system of the virtual environment.

### Claim 9 (depends on 6)

The computer program product of claim 6, wherein the total number of residences include at least one of paging space, shared memory pool, and main memory.

### Claim 10 (depends on 6)

The computer program product of claim 6, wherein paging space further comprises paging space found on a computer that hosts the hypervisor or on a computer in a remote location.

### Claim 11

A computer system for providing hints for page stealing by prioritizing pages based on the number of residences for the pages in a virtual environment comprising:
one or more computer processors;
one or more computer-readable tangible storage media; and
program instructions, stored on the one or more computer-readable tangible storage media for execution by at least one of the one or more computer processors, the program instructions comprising:
program instructions to receive a plurality of pages that are candidates to be hinted to a hypervisor for page stealing;
program instructions to determine at least two page types from the plurality of pages;
program instructions to determine whether any of the at least two page types have a total number of residences less than a total number of potential residences in a virtual environment for all page types and have a total number of residences less than a threshold; and
program instructions, responsive to determining a first page type of the at least two page types has a total number of residences less than a total number of potential residences in a virtual environment for all page types and has a total number of residences less than a threshold, to notify the hypervisor of at least one page, from the plurality of pages, that is of the first page type.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the page type include at least one of Klock (Kernel pages), working segment pages, remote pages, and persistent pages.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the threshold is determined by at least one of a user of the virtual environment in real time, an administrator of the virtual environment upon creation of the virtual environment, and an operating system of the virtual environment.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein the total number of residences include at least one of paging space, shared memory pool, and main memory.

### Claim 15 (depends on 11)

The computer system of claim 11, wherein paging space further comprises paging space found on a computer that hosts the hypervisor or on a computer in a remote location.
