diff options
author | Feng(Eric) Liu <eric.e.liu@intel.com> | 2008-04-10 08:47:53 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-04-27 05:01:22 -0400 |
commit | d4c9ff2d1b78e385471b3f4d80c0596909926ef7 (patch) | |
tree | 5551c0f6c56439df39ca434115840f4e36cee2ea /virt/kvm/kvm_main.c | |
parent | 048354c8e6bf95e7347f623d8a0da5b89e216405 (diff) |
KVM: Add kvm trace userspace interface
This interface allows user a space application to read the trace of kvm
related events through relayfs.
Signed-off-by: Feng (Eric) Liu <eric.e.liu@intel.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 6a52c084e068..d5911d9895c3 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -60,7 +60,7 @@ EXPORT_SYMBOL_GPL(kvm_vcpu_cache); | |||
60 | 60 | ||
61 | static __read_mostly struct preempt_ops kvm_preempt_ops; | 61 | static __read_mostly struct preempt_ops kvm_preempt_ops; |
62 | 62 | ||
63 | static struct dentry *debugfs_dir; | 63 | struct dentry *debugfs_dir; |
64 | 64 | ||
65 | static long kvm_vcpu_ioctl(struct file *file, unsigned int ioctl, | 65 | static long kvm_vcpu_ioctl(struct file *file, unsigned int ioctl, |
66 | unsigned long arg); | 66 | unsigned long arg); |
@@ -1191,6 +1191,11 @@ static long kvm_dev_ioctl(struct file *filp, | |||
1191 | r += PAGE_SIZE; /* pio data page */ | 1191 | r += PAGE_SIZE; /* pio data page */ |
1192 | #endif | 1192 | #endif |
1193 | break; | 1193 | break; |
1194 | case KVM_TRACE_ENABLE: | ||
1195 | case KVM_TRACE_PAUSE: | ||
1196 | case KVM_TRACE_DISABLE: | ||
1197 | r = kvm_trace_ioctl(ioctl, arg); | ||
1198 | break; | ||
1194 | default: | 1199 | default: |
1195 | return kvm_arch_dev_ioctl(filp, ioctl, arg); | 1200 | return kvm_arch_dev_ioctl(filp, ioctl, arg); |
1196 | } | 1201 | } |
@@ -1519,6 +1524,7 @@ EXPORT_SYMBOL_GPL(kvm_init); | |||
1519 | 1524 | ||
1520 | void kvm_exit(void) | 1525 | void kvm_exit(void) |
1521 | { | 1526 | { |
1527 | kvm_trace_cleanup(); | ||
1522 | misc_deregister(&kvm_dev); | 1528 | misc_deregister(&kvm_dev); |
1523 | kmem_cache_destroy(kvm_vcpu_cache); | 1529 | kmem_cache_destroy(kvm_vcpu_cache); |
1524 | sysdev_unregister(&kvm_sysdev); | 1530 | sysdev_unregister(&kvm_sysdev); |