Messages in this thread | | | Date | Wed, 2 Nov 2022 18:42:54 +0100 | Subject | Re: [PATCH 1/7] KVM: VMX: remove regs argument of __vmx_vcpu_run | From | Paolo Bonzini <> |
| |
On 10/31/22 18:37, Sean Christopherson wrote: >> if (IS_ENABLED(CONFIG_KVM_INTEL)) { >> BLANK(); >> + OFFSET(VMX_vcpu_arch_regs, vcpu_vmx, vcpu.arch.regs); > Is there an asm-offsets-like solution that doesn't require exposing vcpu_vmx > outside of KVM? We (Google) want to explore loading multiple instances of KVM, > i.e. loading multiple versions of kvm.ko at the same time, to allow intra-host > migration between versions of KVM to upgrade/rollback KVM without changing the > kernel (RFC coming soon-ish). IIRC, asm-offsets is the only place where I haven't > been able to figure out a simple way to avoid exposing KVM's internal structures > outside of KVM (so that the structures can change across KVM instances without > breaking kernel code). >
It's possible to create our own asm-offsets.h file using something similar to the logic in Kbuild:
##### # Generate asm-offsets.h
offsets-file := include/generated/asm-offsets.h
always-y += $(offsets-file) targets += arch/$(SRCARCH)/kernel/asm-offsets.s
arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE $(call filechk,offsets,__ASM_OFFSETS_H__)
Paolo
| |