Hypervisor Statistics Counter Definition

The hypervisor exposes statistics counters to guest operating systems, upon request, by using overlay pages in a partition's GPA space. Each page is a packed collection of statistics groups. Each group is prefixed by a header that contains the group's identification, the format version, and the size of the group in bytes (not including the header). The array of values within the group (after the header) can be accessed by using a zero-based index into the array. Index zero references the group's header. Each 64-bit value is of a particular type.

The following sections describe each supported statistics counter type and the groups that it might contain. For more information about statistics counters, see Hypervisor Statistics.

Hypervisor Counters

Hypervisor counters describe hypervisor-wide states and items. There is only one hypervisor counter group that consists of only architectural values. Because counters of this counter group count values of a global class, counters of this counter group can only be accessed by the root partition.

Counters of the architectural hypervisor counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_HCA_ID

  • Group version: HV_STATISTICS_TYPE_HCA_VERSION

The following table describes the architectural hypervisor counter group (accessible from the root partition only).

IndexCounterTypeDescription

1

Logical processors

UINT64

The number of logical processors that are present in the computer.

2

Partitions

UINT64

The number of partitions (that is, virtual machines) that are present in the computer.

3

Total pages

UINT64

The number of bootstrap and deposited pages in the hypervisor.

4

Virtual processors

UINT64

The number of virtual processors that are present in the computer.

5

Monitored notifications

UINT64

The number of monitored notifications that are registered with the hypervisor.

 

Logical Processor Counters

Counters for logical processor objects provide information about logical processor-related states and items. The number of logical processor objects matches the number of logical processors in the computer. The logical processor-related states and items consist of both architectural and release-specific values. As counters of a global class, logical processor counters can be only accessed by the root partition.

Counters of the architectural logical processor counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_LPA_ID

  • Group version: HV_STATISTICS_TYPE_LPA_VERSION

The following table describes the architectural logical processor counter group (accessible from the root partition only).

IndexCounterTypeDescription

1

Global time

UINT64

The global time on this logical processor.

2

Total run time

UINT64

The total time (in 100ns) spent by the processor in guest and hypervisor code.

3

Hypervisor run time

UINT64

The total time (in 100ns) spent by the processor in hypervisor code.

4

Hardware interrupts/sec

UINT64

The rate of hardware interrupts on the processor (excluding hypervisor interrupts).

5

Context switches/sec

UINT64

The rate of virtual processor context switches on the processor.

6

Inter-processor interrupts/sec

UINT64

The rate of hypervisor interprocessor interrupts delivered to the processor.

7

Scheduler interrupts/sec

UINT64

The rate of hypervisor scheduler interrupts on the processor.

8

Timer interrupts/sec

UINT64

The rate of hypervisor timer interrupts on the processor.

9

Interprocessor interrupts sent/sec

UINT64

The rate of hypervisor interprocessor interrupts sent by the processor.

10

Processor halts/sec

UINT64

The rate of entries into a halt state by the processor.

11

Monitor transition cost

UINT64

The hardware cost of transitions into the hypervisor.

12

Context switch time

UINT64

The total time (in nanoseconds) spent switching between virtual processors.

13

C1 transitions/sec

UINT64

The rate at which that CPU enters the C1 low-power idle state.

14

% C1 time

UINT64

The percentage of time the processor spends in the C1 low-power idle state. % C1 time is a subset of the total processor idle time.

15

C2 transitions/sec

UINT64

The rate at which that CPU enters the C2 low-power idle state.

16

% C2 time

UINT64

The percentage of time the processor spends in the C2 low-power idle state. % C2 time is a subset of the total processor idle time.

17

C3 transitions/sec

UINT64

The rate at which that CPU enters the C3 low-power idle state.

18

% C3 time

The percentage of time the processor spends in the C3 low-power idle state. % C3 time is a subset of the total processor idle time.

 

Partition Counters

Counters for partition objects provide information about states and items for a particular partition. The number of partition objects matches the number of partitions present in the computer. Partition states and items consist of only architectural values. As counters of a local class, partition counters can be accessed by a partition and its parent. In hypervisor version 1, the root partition is the parent partition.

Counters of the architectural partition counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_PA_ID

  • Group version: HV_STATISTICS_TYPE_PA_VERSION

The following table describes the architectural partition counter group (accessible from a partition and its parent).

IndexCounterTypeDescription

1

Virtual processors

UINT64

The number of virtual processors that are present in the partition.

 

Counters of the release-specific partition counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_PV_ID

  • Group version: HV_STATISTICS_TYPE_PV_VERSION

The following table describes the release-specific partition counter group (accessible from a partition and its parent).

IndexCounterTypeDescription

1

Virtual TLB Pages

UINT64

The number of pages used by the virtual TLB of the partition.

2

Address spaces

UINT64

The number of address spaces in the virtual TLB of the partition.

3

Deposited pages

UINT64

The number of pages that are deposited into the partition.

4

GPA pages

UINT64

The number of pages that are present in the GPA space of the partition (zero for root partition).

5

GPA space modifications/sec

UINT64

The rate of modifications to the GPA space of the partition.

6

Virtual TLB flush entries/sec

UINT64

The rate of flushes of the entire virtual TLB.

7

Recommended virtual TLB size

UINT64

The recommended number of pages to be deposited for the virtual TLB.

 

Virtual Processor Counters

Counters for virtual processor objects provide information about states and items for a particular virtual processor. The number of virtual processor objects matches the number of virtual processors that are present in a given partition. Virtual processor states and items consist of both architectural and release-specific values. As counters of a local class, virtual processor counters can be accessed by the partition and its parent. In hypervisor version 1, the root partition is the parent partition.

Counters of the architectural virtual processor counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_VPA_ID

  • Group version: HV_STATISTICS_TYPE_VPA_VERSION

The following table describes the architectural virtual processor counter group (accessible from a partition and its parent).

IndexCounterTypeDescription

1

Total run time

UINT64

The total time (in 100ns) spent by the processor in guest and hypervisor code.

2

Hypervisor run time

UINT64

The total time (in 100ns) spent by the virtual processor in hypervisor code.

 

Counters of the release-specific virtual processor counter group are defined by the following values:

  • Group identifier: HV_STATISTICS_TYPE_VPV_ID

  • Group version: HV_STATISTICS_TYPE_VPV_VERSION

The following table describes the release-specific virtual processor counter group (accessible from a partition and its parent).

IndexCounterTypeDescription

1

Hypercalls/sec

UINT64

The rate of the hypercalls made by guest code on the virtual processor.

2

Hypercalls cost

UINT64

The average time (in nanoseconds) spent processing a hypercall.

3

Page invalidations/sec

UINT64

The rate of INVLPG instructions executed by guest code on the virtual processor.

4

Page invalidations cost

UINT64

The average time (in nanoseconds) spent processing an INVLPG instruction.

5

Control register accesses/sec

UINT64

The rate of control register accesses by guest code on the virtual processor.

6

Control register accesses cost

UINT64

The average time (in nanoseconds) spent processing a control register access.

7

IO instructions/sec

UINT64

The rate of IO instructions executed by guest code on a virtual processor.

8

IO instructions cost

UINT64

The average time (in nanoseconds) spent processing an IO instruction.

9

HLT instructions/sec

UINT64

The rate of HLT instructions executed by guest code on a virtual processor.

10

HLT instructions cost

UINT64

The average time (in nanoseconds) spent processing an HLT instruction.

11

MWAIT instructions/sec

UINT64

The rate of MWAIT instructions executed by guest code on a virtual processor.

12

MWAIT instructions cost

UINT64

The average time (in nanoseconds) spent processing an MWAIT instruction.

13

CPUID instructions/sec

UINT64

The rate of CPUID instructions executed by guest code on a virtual processor.

14

CPUID instructions cost

UINT64

The average time (in nanoseconds) spent processing a CPUID instruction.

15

MSR accesses/sec

UINT64

The rate of MSR instructions executed by guest code on a virtual processor.

16

MSR accesses cost

UINT64

The average time (in nanoseconds) spent processing an MSR instruction.

17

Other intercepts/sec

UINT64

The rate of other intercepts triggered by guest code on a virtual processor.

18

Other intercepts cost

UINT64

The average time (in nanoseconds) spent processing other intercepts.

19

External interrupts/sec

UINT64

The rate of external interrupts received by the hypervisor while executing guest code on the virtual processor.

20

External interrupts cost

UINT64

The average time (in nanoseconds) spent processing an external interrupt.

21

Pending interrupts/sec

UINT64

The rate of intercepts due to a task priority (TPR) reduction by guest code on the virtual processor.

22

Pending interrupts cost

UINT64

The average time (in nanoseconds) spent processing a pending interrupt intercept.

23

Emulated instructions/sec

UINT64

The rate of emulated instructions while executing guest code on the virtual processor.

24

Emulated instructions cost

UINT64

The average time (in nanoseconds) spent emulating an instruction.

25

Debug register accesses/sec

UINT64

The rate of debug register accesses by guest code on the virtual processor.

26

Debug register accesses cost

UINT64

The average time (in nanoseconds) spent handling a debug register access.

27

Page fault intercepts/sec

UINT64

The rate of page fault exceptions intercepted by the hypervisor while executing guest code on the virtual processor.

28

Page fault intercepts cost

UINT64

The average time (in nanoseconds) spent processing a page fault intercept.

29

Guest page table maps/sec

UINT64

The rate of map operations for guest page table pages.

30

Large page TLB fills/sec

UINT64

The rate of virtual TLB misses on large pages.

31

Small page TLB fills/sec

UINT64

The rate of virtual TLB misses on 4K pages.

32

Reflected guest page faults/sec

UINT64

The rate of page fault exceptions delivered to the guest.

33

APIC MMIO accesses/sec

UINT64

The rate of APIC MMIO register accesses by guest code on the virtual processor.

34

IO intercept messages/sec

UINT64

The rate of IO intercept messages sent to the parent partition.

35

Memory intercept messages/sec

UINT64

The rate of memory intercept messages sent to the parent partition.

36

APIC EOI accesses/sec

UINT64

The rate of APIC EOI register writes by guest code on the virtual processor.

37

Other messages/sec

UINT64

The rate of other intercept messages sent to the parent partition.

38

Page table allocations/sec

UINT64

The rate of page table allocations in the virtual TLB.

39

Logical processor migrations/sec

UINT64

The rate of migrations by the virtual processor to a different logical processor.

40

Address space evictions/sec

UINT64

The rate of address space evictions in the virtual TLB.

41

Address space switches/sec

UINT64

The rate of address space switches by guest code on the virtual processor.

42

Address domain flushes/sec

UINT64

The rate of explicit flushes of the virtual TLB by guest code on the virtual processor.

43

Address space flushes/sec

UINT64

The rate of explicit flushes of one address space by guest code on the virtual processor.

44

Global GVA range flushes/sec

UINT64

The rate of explicit flushes of a virtual address range in all address spaces by guest code on the virtual processor.

45

Local flushed GVA ranges/sec

UINT64

The rate of explicit flushes of a virtual address range in one address space by guest code on the virtual processor.

46

Page table evictions/sec

UINT64

The rate of page table evictions in the virtual TLB.

47

Page table reclamations/sec

UINT64

The rate of reclamations of unreferenced page tables in the virtual TLB.

48

Page table resets/sec

UINT64

The rate of page table resets In the virtual TLB.

49

Page table validations/sec

UINT64

The rate of page table validations to remove state entries in the virtual TLB.

50

APIC TPR accesses/sec

UINT64

The rate of APIC TPR accesses by guest code on the virtual processor.

51

Page table write intercepts/sec

UINT64

The rate of write intercepts on guest page tables by guest code on the virtual processor.

52

Synthetic interrupts/sec

UINT64

The rate of synthetic interrupts delivered to the virtual processor.

53

Virtual interrupts/sec

UINT64

The rate of interrupts (including synthetic interrupts) delivered to the virtual processor.

54

APIC IPIs sent/sec

UINT64

The rate of APIC inter-processor interrupts (including to self) sent to the virtual processor.

55

APIC self IPIs sent/sec

UINT64

The rate of APIC interrupts sent by the virtual processor to itself.

56

GPA space hypercalls/sec

UINT64

The rate of guest physical address space hypercalls made by guest code on the virtual processor.

57

Logical processor hypercalls/sec

UINT64

The rate of logical processor hypercalls made by guest code on the virtual processor.

58

Long spin wait hypercalls/sec

UINT64

The rate of long spin wait hypercalls made by guest code on the virtual processor.

59

Other hypercalls/sec

UINT64

The rate of other hypercalls made by guest code on the virtual processor.

60

Synthetic interrupt hypercalls/sec

UINT64

The rate of Synthetic Interrupt hypercalls made by guest code on the virtual processor.

61

Virtual interrupt hypercalls/sec

UINT64

The rate of Virtual Interrupt hypercalls made by guest code on the virtual processor.

62

Virtual MMU hypercalls/sec

UINT64

The rate of Virtual MMU hypercalls made by guest code on the virtual processor.

63

Virtual processor hypercalls/sec

UINT64

The rate of Virtual Processor hypercalls made by guest code on the virtual processor.

 

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.