/** * kvm_dirty_ring: KVM internal dirty ring structure * * @dirty_index: free running counter that points to the next slot in * dirty_ring->dirty_gfns, where a new dirty page should go * @reset_index: free running counter that points to the next dirty page * in dirty_ring->dirty_gfns for which dirty trap needs to * be reenabled * @size: size of the compact list, dirty_ring->dirty_gfns * @soft_limit: when the number of dirty pages in the list reaches this * limit, vcpu that owns this ring should exit to userspace * to allow userspace to harvest all the dirty pages * @dirty_gfns: the array to keep the dirty gfns * @index: index of this dirty ring
*/ struct kvm_dirty_ring {
u32 dirty_index;
u32 reset_index;
u32 size;
u32 soft_limit; struct kvm_dirty_gfn *dirty_gfns; int index;
};
#ifndef CONFIG_HAVE_KVM_DIRTY_RING /* * If CONFIG_HAVE_HVM_DIRTY_RING not defined, kvm_dirty_ring.o should * not be included as well, so define these nop functions for the arch.
*/ staticinline u32 kvm_dirty_ring_get_rsvd_entries(struct kvm *kvm)
{ return 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.