On Fri, 2007-11-30 at 22:31 +0200, Avi Kivity wrote: > Hollis Blanchard wrote: > > On Fri, 2007-11-30 at 11:04 +0200, Avi Kivity wrote: > > > >> Zhang, Xiantao wrote: > >> > >>>>> > >>>>> > >>>> The nicer one: > >>>> > >>>> struct kvm { > >>>> struct kvm_arch arch; > >>>> // common fields > >>>> } > >>>> > >>>> > >>> I prefer this one, seems it is more direct and readable. Same thinking > >>> about kvm_vcpu structure:) > >>> > >>> > >> I agree, kvm_vcpu should use the same method. > >> > > > > And we will convert vcpu_vmx/vcpu_svm as well? > > > > > > These cannot use the same method, since we need to support both vmx and > svm in the same binary. The arch specific members aren't the same size, > nor do the symbols they use have the same visibility.
I have never understood this. Why on earth do you need to support VMX and SVM in the same binary? For example, when would you overwrite kvm_x86_ops after initialization? If you wouldn't, then why are you using function pointers instead of the linker? PowerPC will also need to support multiple processor types, and so I expect to have one kvm_arch structure for each. That also means struct kvm_arch must be the *last* member in struct kvm, which is not how it is shown above. -- Hollis Blanchard IBM Linux Technology Center ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel