Local and Global Buffer Classes

The hypervisor supports the following event log buffer classes:

Local buffer class

Local buffers are distributed across and associated with specific logical processors and can be filled without acquiring costly cross-processor locks. The local buffer class is used with performance-critical applications. When deriving the event log buffer group geometry, the guest should consider the number of logical processors and the NUMA topology.

Global buffer class

Global buffers are shared among all logical processors, which requires access to the global buffers to be synchronized by using global locks. The global buffer class is used for applications that are not performance critical or where the frequency of event generation is low.

The guest should allocate multiple event log buffers for the following reasons:

  • For local buffers, at least one buffer should be available as the "in use" (currently active) buffer for each active logical processor.

  • When there is insufficient space available for a new event log entry in the active buffer, the hypervisor will "complete" the buffer. Buffers can also be completed prematurely by the guest requesting the flushing of active buffers. If, at the time that an event is ready to be logged, no "in use" buffer is present, a "free" buffer will be allocated and become the "in use" buffer. If local buffers are being used, only buffers created for that specific logical processor will be used. To avoid interruption in the logging of events, sufficient free buffers must be available.

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.