Prev: [RFC][PATCH v1 03/15] perf: export software events via sysfs
Next: [RFC][PATCH v1 12/15] perf: export tracepoint events via sysfs: kmem
From: Lin Ming on 22 Jul 2010 07:20 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); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |