Re: [Qemu-devel] [RFC PATCH v2 09/15] cpu-model/s390: Add KVM VM attribute interface routines

Michael Mueller
2015-02-20T15:18:05Z

On Fri, 20 Feb 2015 14:59:20 +0100
Alexander Graf <agraf@suse.de> wrote:

> > +typedef struct S390ProcessorProps {
> > + uint64_t cpuid;
> > + uint16_t ibc;
> > + uint8_t pad[6];
> > + uint64_t fac_list[S390_ARCH_FAC_LIST_SIZE_UINT64];
> > +} S390ProcessorProps;
> > +
> > +typedef struct S390MachineProps {
> > + uint64_t cpuid;
> > + uint32_t ibc_range;
> > + uint8_t pad[4];
> > + uint64_t fac_list_mask[S390_ARCH_FAC_LIST_SIZE_UINT64];
> > + uint64_t fac_list[S390_ARCH_FAC_LIST_SIZE_UINT64];
> > +} S390MachineProps;
>
> What are those structs there for? To convert between a kvm facing
> interface to an internal interface?

Yes, that's their current use, but if the interface structs:

+struct kvm_s390_vm_cpu_processor {
+ __u64 cpuid;
+ __u16 ibc;
+ __u8 pad[6];
+ __u64 fac_list[256];
+};
+
+/* kvm S390 machine related attributes are r/o */
+#define KVM_S390_VM_CPU_MACHINE 1
+struct kvm_s390_vm_cpu_machine {
+ __u64 cpuid;
+ __u32 ibc_range;
+ __u8 pad[4];
+ __u64 fac_mask[256];
+ __u64 fac_list[256];
+};

are visible here, I'll reuse them... But stop, that will not work in the
--disable-kvm case... I need them!
>
> I don't think they're necessary. The internal layout is visible from the
> KVM code. Just either spawn the class straight from the kvm file or if
> you consider that ugly, pass the values of that struct that you need as
> function parameters to a function in cpu-models.c.