Messages in this thread Patch in this message | | | Subject | [RFC][PATCH v1 08/15] perf: export tracepoint events via sysfs: kvm and kvm_mmu | From | Lin Ming <> | Date | Thu, 22 Jul 2010 19:14:28 +0800 |
| |
kvm and kvm_mmu tracepoint events are exported like below,
/sys/devices/system/kvm/kvm0/events/ |-- kvm_ack_irq | |-- config | `-- type .... .... |-- kvm_mmu_get_page | |-- config | `-- type .... .... --- virt/kvm/kvm_main.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index f032806..0acb4f6 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -46,6 +46,7 @@ #include <linux/srcu.h> #include <linux/hugetlb.h> #include <linux/slab.h> +#include <linux/perf_event.h> #include <asm/processor.h> #include <asm/io.h> @@ -2178,6 +2179,18 @@ static void kvm_sched_out(struct preempt_notifier *pn, kvm_arch_vcpu_put(vcpu); } +static void kvm_sys_add_tp(struct kobject *kvm_kobj) +{ + struct kobject *events_kobj; + + events_kobj = perf_sys_create_events_dir(kvm_kobj); + if (!events_kobj) + return; + + perf_sys_add_tp_events(events_kobj, "kvm"); + perf_sys_add_tp_events(events_kobj, "kvm_mmu"); +} + int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, struct module *module) { @@ -2227,6 +2240,8 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, if (r) goto out_free_4; + kvm_sys_add_tp(&kvm_sysdev.kobj); + /* A kmem cache lets us meet the alignment requirements of fx_save. */ if (!vcpu_align) vcpu_align = __alignof__(struct kvm_vcpu);
| |