Multiple time granularity support for online classification of memory pages based on activity level

US8990531B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-8990531-B2
Application numberUS-201113179032-A
CountryUS
Kind codeB2
Filing dateJul 8, 2011
Priority dateJul 12, 2010
Publication dateMar 24, 2015
Grant dateMar 24, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

I claim: 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. The method of claim 1 , wherein the current activity levels of the memory pages stored in the first and second data structure include a high activity level, a low activity level, and an intermediate activity level. 3. The method of claim 1 , wherein determining comprises: transitioning from the current activity level to the new activity level in a finite state machine based on the retrieved first input data. 4. The method of claim 3 , wherein the second time interval is a minimum time interval supported by a hypervisor of the virtual machine and the A/D bits of a page table entry for the memory page are cleared at the end of each second time interval. 5. The method of claim 3 , wherein the first input data is updated at the end of an elapsed second time interval based on whether or not a hypervisor of the virtual machine set a page table entry for the memory page during the elapsed second time interval. 6. The method of claim 3 , wherein the first input data indicates one of more than two activity levels of the memory page including a high activity level, a low activity level, and an intermediate activity level. 7. The method of claim 6 , wherein the second time interval is a minimum time interval supported by a hypervisor of the virtual machine. 8. The method of claim 6 , wherein a second finite state machine is used to update the first input data 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. 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. 10. The computer system of claim 9 , wherein the current activity levels of the memory pages stored in the first and second data structure include a high activity level, a low activity level, and an intermediate activity level. 11. The computer system of claim 9 , wherein the determining step comprises transitioning from the current activity level to the new activity level in a finite state machine based on the retrieved first input data. 12. The computer system of claim 11 , wherein the second time interval is a minimum time interval supported by the hypervisor and the A/D bits of a page table entry for the memory page are cleared at the end of each second time interval. 13. The computer system of claim 11 , wherein the first input data is updated at the end of an elapsed second time interval based on whether or not a hypervisor of the virtual machine set a page table entry for the memory page during the elapsed second time interval. 14. The computer system of claim 11 , wherein the first input data indicates one of more than two activity levels of the memory page including a high activity level, a low activity level, and an intermediate activity level. 15. The computer system of claim 14 , wherein the second time interval is a minimum time interval supported by the hypervisor. 16. The computer system of claim 14 , wherein a second finite state machine is used to update the first input data 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. 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. 18. The non-transitory computer-readable storage medium of claim 17 , wherein the current activity levels of the memory pages stored in the first and second data structure include a high activity level, a low activity level, and an intermediate activity level. 19. The non-transitory computer-readable storage medium of claim 17 , wherein the determining step comprises transitioning from the current activity level to the new acti

Assignees

Inventors

Classifications

  • Hypervisor-specific management and integration aspects · CPC title

  • Memory management, e.g. access or allocation · CPC title

  • using page tables, e.g. page table structures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8990531B2 cover?
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…
Who is the assignee on this patent?
Ahmad Irfan, Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 24 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).