Re: [Qemu-devel] [PATCH v5 11/17] target-s390x: Add KVM VM attribute interface for S390 CPU models

Cornelia Huck
2015-04-27T12:19:13Z

On Mon, 27 Apr 2015 13:07:58 +0200
Michael Mueller <mimu@linux.vnet.ibm.com> wrote:

> On Mon, 27 Apr 2015 12:52:54 +0200
> Christian Borntraeger <borntraeger@de.ibm.com> wrote:
>
> > Am 27.04.2015 um 11:43 schrieb Michael Mueller:
> > > On Mon, 27 Apr 2015 10:15:47 +0200
> > > Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> > >
> > >> Am 13.04.2015 um 15:56 schrieb Michael Mueller:
> > >> [...]
> > >>> +static int cpu_model_get(KVMState *s, uint64_t attr, uint64_t addr)
> > >>> +{
> > >>> + int rc = -ENOSYS;
> > >>> + struct kvm_device_attr dev_attr = {
> > >>> + .group = KVM_S390_VM_CPU_MODEL,
> > >>> + .attr = attr,
> > >>> + .addr = addr,
> > >>
> > >> Would it make sense to do the cast here....
> > >
> > > cpu_model_get/set() is used to handle both attributes,
> > > KVM_S390_VM_CPU_MACHINE and KVM_S390_VM_CPU_PROCESSOR.
> > > Both require a different type in the signature, (S390ProcessorProps*)
> > > and (S390MachineProps*). Adding both as parameters seems to be odd
> > > and would require additionally logic in the function.
> > > Thus I think doing the cast outside is just the right thing to do.
> >
> > So what about a void pointer then as parameter?
> > I prefer a pointer for qemu process memory over uint64_t as part of the
> > function interface. This makes it somewhat clearer that this is an
> > address within QEMU. Both ways will certainly work, though.
>
> The interface calls are:
>
> int kvm_s390_get_machine_props(KVMState *s, S390MachineProps *prop)
> int kvm_s390_get_processor_props(S390ProcessorProps *prop)
>
> cpu_model_get/set() are just static helpers.

So this makes them internal calls...

>
> >
> > Conny, I guess you will pick up the patches. Any preference?

...and I'd prefer using a void pointer for them.