Skip to content

Commit 741e595

Browse files
merwicksean-jc
authored andcommitted
KVM: Add trace_kvm_vm_set_mem_attributes()
Add a tracing function that, for a guest memory range, displays the start and end addresses plus the per-page attributes being set. Signed-off-by: Liam Merwick <liam.merwick@oracle.com> Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com> Link: https://lore.kernel.org/r/20250609091121.2497429-3-liam.merwick@oracle.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent 28224ef commit 741e595

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

include/trace/events/kvm.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,33 @@ TRACE_EVENT(kvm_dirty_ring_exit,
473473
TP_printk("vcpu %d", __entry->vcpu_id)
474474
);
475475

476+
#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES
477+
/*
478+
* @start: Starting address of guest memory range
479+
* @end: End address of guest memory range
480+
* @attr: The value of the attribute being set.
481+
*/
482+
TRACE_EVENT(kvm_vm_set_mem_attributes,
483+
TP_PROTO(gfn_t start, gfn_t end, unsigned long attr),
484+
TP_ARGS(start, end, attr),
485+
486+
TP_STRUCT__entry(
487+
__field(gfn_t, start)
488+
__field(gfn_t, end)
489+
__field(unsigned long, attr)
490+
),
491+
492+
TP_fast_assign(
493+
__entry->start = start;
494+
__entry->end = end;
495+
__entry->attr = attr;
496+
),
497+
498+
TP_printk("%#016llx -- %#016llx [0x%lx]",
499+
__entry->start, __entry->end, __entry->attr)
500+
);
501+
#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */
502+
476503
TRACE_EVENT(kvm_unmap_hva_range,
477504
TP_PROTO(unsigned long start, unsigned long end),
478505
TP_ARGS(start, end),

virt/kvm/kvm_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2558,6 +2558,8 @@ static int kvm_vm_set_mem_attributes(struct kvm *kvm, gfn_t start, gfn_t end,
25582558

25592559
entry = attributes ? xa_mk_value(attributes) : NULL;
25602560

2561+
trace_kvm_vm_set_mem_attributes(start, end, attributes);
2562+
25612563
mutex_lock(&kvm->slots_lock);
25622564

25632565
/* Nothing to do if the entire range as the desired attributes. */

0 commit comments

Comments
 (0)