Multiple time granularity support for online classification of memory pages based on activity level
First Claim
Patent Images
1. A method for classifying activity levels for memory pages of a virtual machine, the method comprising:
- maintaining a current activity level of each of the memory pages in a first data structure corresponding to a first time interval and in a second data structure corresponding to a second time interval that is less than the first time interval;
receiving notification of an elapse of the first time interval;
identifying the current activity level of a memory page of the virtual machine stored in the first data structure;
retrieving first input data indicating the current activity level of the memory page stored in the second data structure, wherein the first input data is updated at the end of each of the second time intervals that elapsed within the first time interval, the first input data being updated at the end of an elapsed second time interval based on whether or not the memory page was accessed during the elapsed second time interval;
determining a new activity level of the memory page based on the current activity level stored in the first data structure and the retrieved first input data; and
storing the new activity level in an entry of the first data structure corresponding to the memory page as the current activity level of the memory page.
2 Assignments
0 Petitions
Accused Products
Abstract
Activity level of memory pages is classified in virtual machine environment, so that processes such as live VM migration and checkpointing, among others, can be carried out more efficiently. Because each such hypervisor-based service may desire classification of activity levels of memory pages at different frequencies and different time granularities, the hypervisor supports methods to classify activity levels of memory pages for a plurality of time intervals.
32 Citations
24 Claims
-
1. A method for classifying activity levels for memory pages of a virtual machine, the method comprising:
-
maintaining a current activity level of each of the memory pages in a first data structure corresponding to a first time interval and in a second data structure corresponding to a second time interval that is less than the first time interval; receiving notification of an elapse of the first time interval; identifying the current activity level of a memory page of the virtual machine stored in the first data structure; retrieving first input data indicating the current activity level of the memory page stored in the second data structure, wherein the first input data is updated at the end of each of the second time intervals that elapsed within the first time interval, the first input data being updated at the end of an elapsed second time interval based on whether or not the memory page was accessed during the elapsed second time interval; determining a new activity level of the memory page based on the current activity level stored in the first data structure and the retrieved first input data; and storing the new activity level in an entry of the first data structure corresponding to the memory page as the current activity level of the memory page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system including one or more virtual machines running therein and a hypervisor configured to classify activity levels of memory pages of a virtual machine by performing the steps of:
-
maintaining a current activity level of each of the memory pages in a first data structure corresponding to a first time interval and in a second data structure corresponding to a second time interval that is less than the first time interval; receiving notification of an elapse of the first time interval; identifying the current activity level of a memory page of the virtual machine stored in the first data structure; retrieving first input data indicating the current activity level of the memory page stored in the second data structure, wherein the first input data is updated at the end of each of the second time intervals that elapsed within the first time interval, the first input data being updated at the end of an elapsed second time interval based on whether or not the memory page was accessed during the elapsed second time interval; determining a new activity level of the memory page based on the current activity level stored in the first data structure and the retrieved first input data; and storing the new activity level in an entry of the first data structure corresponding to the memory page as the current activity level of the memory page. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium including instructions that, when executed by a computer processor, causes the computer processor to classify activity levels for memory pages of a virtual machine by performing the steps of:
-
maintaining a current activity level of each of the memory pages in a first data structure corresponding to a first time interval and in a second data structure corresponding to a second time interval that is less than the first time interval; receiving notification of an elapse of the first time interval; identifying the current activity level of a memory page of the virtual machine stored in the first data structure; retrieving first input data indicating the current activity level of the memory page stored in the second data structure, wherein the first input data is updated at the end of each of the second time intervals that elapsed within the first time interval, the first input data being updated at the end of an elapsed second time interval based on whether or not the memory page was accessed during the elapsed second time interval; determining a new activity level of the memory page based on the current activity level stored in the first data structure and the retrieved first input data; and storing the new activity level in an entry of the first data structure corresponding to the memory page as the current activity level of the memory page. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification