Timer access from user mode through a shared memory page

US10102017B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10102017-B2
Application numberUS-201313770941-A
CountryUS
Kind codeB2
Filing dateFeb 19, 2013
Priority dateMar 30, 2009
Publication dateOct 16, 2018
Grant dateOct 16, 2018

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.

A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the shared page. In a virtualized environment, the state translation information can be used to map the value of a virtual timer counter or other component from a value provided by a virtual processor to a normalized reference time that will yield the same result, regardless of whether the software component is migrated to or from another virtual processor. Use of a shared page avoids the inefficiency of an intercept into a virtualized environment or a system calls in native mode operation.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed on a computing device comprising a processor and storage coupled with the processor, the method comprising: executing a hypervisor that manages execution of virtual machines on the computing device, the virtual machines including a virtual machine comprising an operating system and a user-mode application running within the operating system, the virtual machine further comprising a virtual processor comprising a virtual timestamp counter (TSC); providing a shared memory that is shared by both the hypervisor and guest software executing within the virtual machine, the shared memory comprising a TSC memory location to store TSC information, the TSC memory location comprising a memory location of a portion of a physical memory device, wherein the TSC memory location is used as an interface for inter-process communication between the hypervisor and the guest software executing within the virtual machine, wherein both the hypervisor and guest software of the virtual machine directly access the TSC memory location of the portion of the physical memory device to directly exchange the TSC information, wherein the guest software of the virtual machine directly reads from the TSC memory location without causing a corresponding intercept into the hypervisor to access the TSC memory location; and directly writing, by the hypervisor, time translation information to the TSC memory location, wherein the time translation information is computed by the hypervisor, and directly reading, by the guest software, without causing a corresponding intercept into the hypervisor, the TSC memory location to obtain therefrom the time translation information, the guest software comprising a guest operating system executing in the virtual machine or an application executed by the guest operating system. 2. A method according to claim 1 , further comprising restoring the virtual machine from a suspended state by the hypervisor, and as part of the restoring: evaluating timer information in the TSC location that was stored in the TSC location when the virtual machine was suspended, and based on the evaluating computing time translation information. 3. A method according to claim 2 , wherein the evaluating is performed using the timer information and a time value from a physical TSC of the processor. 4. A method according to claim 2 , further comprising setting a TSC offset of a virtual TSC managed by the hypervisor and used by the virtual machine, the virtual TSC comprising an element of a virtual processor of the virtual machine. 5. A method according to claim 1 , wherein the time translation information comprises scale information obtained according to a frequency of a physical TSC of the processor. 6. A method according to claim 5 , wherein the virtual processor comprises a virtual TSC, the method further comprising: reading, by the operating system or the user-mode application, the scale information from the TSC location; obtaining a time value from the virtual TSC; and computing a reference time according to the scale information and the time value. 7. One or more computer-readable storage devices, the one or more storage devices storing information to enable a computing device, comprising a processor and storage, to perform a process, the process comprising: executing a hypervisor that manages execution of a virtual machine on the computer, the virtual machine hosting guest software comprising a guest operating system and an application executable by the guest operating system; providing a shared memory location that is a location of physical memory shared by both the hypervisor and the guest software of the virtual machine, the shared memory location functioning as an interface between the hypervisor and the guest software by enabling the hypervisor to directly write to the shared memory location and the guest software to directly read from the shared memory location, the shared memory location storing time information about a time stamp counter (TSC) on a physical computer that previously hosted the virtual machine, wherein the guest software is able to read the shared memory location without a corresponding intercept by the hypervisor; and reading, by the guest software reading, the shared memory location to obtain the time information from the shared memory location, and computing the reference time using the time information read from the shared memory location, wherein the guest software does not obtain the time information through the hypervisor. 8. One or more computer-readable storage devices according to claim 7 , wherein the shared memory is used by the hypervisor to determine whether the virtual machine has been migrated. 9. One or more computer-readable storage media according to claim 7 , wherein the shared memory is used by the operating system or the user-mode application to determine whether to compute a reference time by either issuing a call that will result in an interrupt to the hypervisor or by obtaining a time value from a virtual TSC. 10. One or more computer-readable storage media according to claim 7 , wherein the application or the operating system has a reference time computing process to compute a reference time, wherein the reference time computing process determines whether to attempt to access a virtual TSC based the shared memory. 11. One or more computer-readable storage media according to claim 10 , wherein the reference time computing process updates the shared memory after the virtual machine has been restored. 12. One or more computer-readable storage media according to claim 7 , wherein the virtual machine originated from another computing device and the hypervisor updates the shared memory when restoring the virtual machine. 13. One or more computer-readable storage devices according to claim 7 , the process further comprising determining whether the computing device comprises a physical TSC and storing an indication of the determination in the shared memory. 14. One or more computer-readable storage devices according to claim 13 , wherein the indication comprises a flag that controls whether the application or operating system will attempt to use a virtual TSC. 15. A computer comprising storage coupled with a processor, the storage including physical memory, the computer further comprising: a hypervisor stored on the storage and executed by the processor, the hypervisor managing a virtual machine, the virtual machine comprising a virtual processor implemented by the hypervisor, the virtual processor comprising a virtual TSC, the virtual machine hosting a guest software component executing in the virtual machine, the guest software component comprising a guest operating system or an application configured to be executed by the guest operating system; a shared memory location comprising a location of the physical memory, wherein the shared memory location is directly writable by the hypervisor and is directly readable by the guest software component; and the hypervisor, writing TSC information to the shared memory location for availability to the guest software component, the guest software component accessing the TSC information by reading the shared memory location and using the TSC information therefrom to control how the guest software component uses the virtual TSC, wherein the shared memory location is directly read by the guest software component without a corresponding intercept into the hypervisor. 16. A computer according to claim 15 , wherein, when resuming the virtual machine from a suspended state, the hypervisor populates the shared m

Assignees

Inventors

Classifications

  • Hypervisors; Virtual machine monitors · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Memory management, e.g. access or allocation · 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 US10102017B2 cover?
A computing system in which a software component executing on a platform can reliably and efficiently obtain state information about a component supported by the platform through the use of a shared memory page. State information may be supplied by the platform, but any state translation information needed to map the state information as supplied to a format as used may be provided through the …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/45533. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 16 2018 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).