Preparing for Event Logging

The hypervisor supports a fixed set of event log types. Each event log type uses a specific event log buffer class. When the guest prepares to use an event logging type and to derive the event log group's geometry and threshold, the guest should consider the class, the expected rate of event generation, and the NUMA topology.

The guest should set up the event logging environment for the type as described in the following items:

  • The guest should determine that an adequate number of pages are available in the partition's pool for both the logging infrastructure as well as the buffers themselves. If the local buffer class will be used, there should be adequate pages available for each NUMA proximity.

  • The event log buffer group should be initialized through a call to the HvInitializeEventLogBufferGroup hypercall function. The guest should establish the number of buffers, the size of each buffer, and the completed buffer threshold. The number of buffers is a maximum value. There is no requirement that all buffers are created before enabling event logging for the type; buffers can be added to the group while the group is active.

  • An adequate supply of buffers should be created through calls to the HvCreateEventLogBuffer hypercall function. If the local buffer class will be used, the buffers should be properly distributed across all NUMA proximities, based on logical processor and proximity relationships.

  • The buffers should be mapped for read-only access through calls to the HvMapEventLogBuffer hypercall function. The hypervisor will not use a buffer until the guest has mapped the buffer. In addition, the guest cannot determine where the buffer's pages are located until the pages that constitute the buffer are returned by HvMapEventLogBuffer.

After the guest has set up event logging, the guest can proceed to enable the logging of events.

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.