qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Thomas Huth <thuth@redhat.com>, qemu-devel@nongnu.org
Cc: Janosch Frank <frankja@linux.ibm.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Halil Pasic <pasic@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, Igor Mammedov <imammedo@redhat.com>,
	Jiri Denemark <jdenemar@redhat.com>
Subject: Re: [PATCH v1] s390x/kvm: Set default cpu model for all machine classes
Date: Mon, 21 Oct 2019 11:54:46 +0200	[thread overview]
Message-ID: <e8ef32ee-de10-0015-6a45-de3d5bba4ff8@redhat.com> (raw)
In-Reply-To: <96381cf8-a6cf-9583-7eb2-92ad9d333c1b@redhat.com>

On 21.10.19 11:52, Thomas Huth wrote:
> On 21/10/2019 11.34, David Hildenbrand wrote:
>> We have to set the default model of all machine classes, not just for
>> the active one. Otherwise, "query-machines" will indicate the wrong
>> CPU model ("qemu-s390x-cpu" instead of "host-s390x-cpu") as
>> "default-cpu-type".
>>
>> Doing a
>>      {"execute":"query-machines"}
>> under KVM now results in
>>      {"return": [
>>          {
>>              "hotpluggable-cpus": true,
>>              "name": "s390-ccw-virtio-4.0",
>>              "numa-mem-supported": false,
>>              "default-cpu-type": "host-s390x-cpu",
>>              "cpu-max": 248,
>>              "deprecated": false},
>>          {
>>              "hotpluggable-cpus": true,
>>              "name": "s390-ccw-virtio-2.7",
>>              "numa-mem-supported": false,
>>              "default-cpu-type": "host-s390x-cpu",
>>              "cpu-max": 248,
>>              "deprecated": false
>>          } ...
>>
>> Reported-by: Jiri Denemark <jdenemar@redhat.com>
>> Fixes: b6805e127c6b ("s390x: use generic cpu_model parsing")
>> Cc: Igor Mammedov <imammedo@redhat.com>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> ---
>>   target/s390x/kvm.c | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
>> index c24c869e77..5966ab0d37 100644
>> --- a/target/s390x/kvm.c
>> +++ b/target/s390x/kvm.c
>> @@ -320,11 +320,17 @@ void kvm_s390_set_max_pagesize(uint64_t pagesize, Error **errp)
>>       cap_hpage_1m = 1;
>>   }
>>   
>> -int kvm_arch_init(MachineState *ms, KVMState *s)
>> +static void ccw_machine_class_foreach(ObjectClass *klass, void *opaque)
>>   {
>> -    MachineClass *mc = MACHINE_GET_CLASS(ms);
>> +    MachineClass *mc = MACHINE_CLASS(klass);
> 
> I think we rather wanted to avoid using "klass" in new code... maybe use
> "oc" instead of "klass" ?

Can do, this was a copy and paste :)

> 
>>       mc->default_cpu_type = S390_CPU_TYPE_NAME("host");
>> +}
>> +
>> +int kvm_arch_init(MachineState *ms, KVMState *s)
>> +{
>> +    object_class_foreach(ccw_machine_class_foreach, TYPE_S390_CCW_MACHINE,
>> +                         false, NULL);
>>   
>>       if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) {
>>           error_report("KVM is missing capability KVM_CAP_DEVICE_CTRL - "
>>
> 
> Weird, if you start an older machine, you still get the "host" CPU
> without your patch, too:
> 
> echo -e "info qom-tree \n quit" | \
>   qemu-system-s390x -display none -monitor stdio -no-shutdown \
>     -accel kvm -M s390-ccw-virtio-3.0 | grep s390x-cpu
> 
> Results in:
> 
>      /device[0] (host-s390x-cpu)
> 
> ... so I wonder why that differs from the "query-machines" command?

query-machines probes with the "none" machine all other machines. 
Current code only fixes up the active machine.

(that's why you won't notice when starting a machine - you will always 
get "host" for the active one)

> 
> Anyway, your patch sounds fine, so (with "klass" replaced by "oc"):
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> 


-- 

Thanks,

David / dhildenb



  reply	other threads:[~2019-10-21  9:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-21  9:34 [PATCH v1] s390x/kvm: Set default cpu model for all machine classes David Hildenbrand
2019-10-21  9:52 ` Thomas Huth
2019-10-21  9:54   ` David Hildenbrand [this message]
2019-10-21  9:58     ` Thomas Huth
2019-10-21  9:58     ` David Hildenbrand
2019-10-21 10:01       ` Cornelia Huck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e8ef32ee-de10-0015-6a45-de3d5bba4ff8@redhat.com \
    --to=david@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imammedo@redhat.com \
    --cc=jdenemar@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).