Hi Sean, Hi Paolo, I have a question regarding a unexport of kvm_x86_ops that made its way into 5.18-rc (commit dfc4e6ca04 ("KVM: x86: Unexport kvm_x86_ops"). This is in the context of tracing. Especially, LTTng implements probes for x86 kvm events, e.g. x86 kvm_exit. It receives a struct kvm_vcpu * as parameter, and uses kvm_x86_ops.get_exit_info() to translate this into meaningful fields. LTTng is an out of tree kernel module, which currently relies on the export. Indeed, arch/x86/kvm/x86.c exports a set of tracepoints to kernel modules, e.g.: EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_entry) But any probe implementation hooking on that tracepoint would need kvm_x86_ops to translate the struct kvm_vcpu * into meaningful tracing data. I could work-around this on my side in ugly ways, but I would like to discuss how kernel module tracers are expected to implement kvm events probes without the kvm_x86_ops symbol ? Perhaps there is an alternative way to convert the fields in this structure to meaningful information without using the kvm_x86_ops callbacks that I am not aware of ? The LTTng kernel tracer uses get_exit_info() and get_segment_base() callbacks from kvm_x86_ops. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com