All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org,
	Matthew Rosato <mjrosato@linux.vnet.ibm.com>,
	thuth@redhat.com, Eduardo Habkost <ehabkost@redhat.com>,
	cohuck@redhat.com,
	Richard Henderson <richard.henderson@linaro.org>,
	Alexander Graf <agraf@suse.de>,
	Markus Armbruster <armbru@redhat.com>,
	borntraeger@de.ibm.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 13/21] target/s390x: use "core-id" for cpu number/address/id handling
Date: Tue, 12 Sep 2017 15:15:34 +0200	[thread overview]
Message-ID: <55850e26-53da-474a-328c-f56bad58774b@redhat.com> (raw)
In-Reply-To: <20170912150737.395a5045@nial.brq.redhat.com>

On 12.09.2017 15:07, Igor Mammedov wrote:
> On Mon, 11 Sep 2017 17:21:42 +0200
> David Hildenbrand <david@redhat.com> wrote:
> 
>> Some time ago we discussed that using "id" as property name is not the
>> right thing to do, as it is a reserved property for other devices and
>> will not work with device_add.
>>
>> Switch to the term "core-id" instead, and use it as an equivalent to
>> "CPU address" mentioned in the PoP. There is no such thing as cpu number,
>> so rename env.cpu_num to env.core_id. We use "core-id" as this is the
>> common term to use for device_add later on (x86 and ppc).
> is there possibility that later The core (something that contains threads)
> would appear/exist in real hw?
> (my concern here is that we would have to use some other name for it as
> renaming of already shipped public property name would be not an option)

There is the possibility (s390x has SMP support starting with z13), but
it is really, really unlikely for KVM. There would be the chance of
implementing this somewhen in the future for TCG (although I also doubt
this will happen in the near future).

If so, I think there will only be one solution: a new machine type.

Faking threads now would be just plain wrong. So I think this should
just be fine for now.

[...]
>> diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
>> index f3624d75eb..293fc8428a 100644
>> --- a/target/s390x/misc_helper.c
>> +++ b/target/s390x/misc_helper.c
>> @@ -232,7 +232,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0,
>>              /* XXX make different for different CPUs? */
>>              ebcdic_put(sysib.sequence, "QEMUQEMUQEMUQEMU", 16);
>>              ebcdic_put(sysib.plant, "QEMU", 4);
>> -            stw_p(&sysib.cpu_addr, env->cpu_num);
>> +            stw_p(&sysib.cpu_addr, env->core_id);
>>              cpu_physical_memory_write(a0, &sysib, sizeof(sysib));
>>          } else if ((sel1 == 2) && (sel2 == 2)) {
>>              /* Basic Machine CPUs */
>> @@ -260,7 +260,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0,
>>                  /* XXX make different for different CPUs? */
>>                  ebcdic_put(sysib.sequence, "QEMUQEMUQEMUQEMU", 16);
>>                  ebcdic_put(sysib.plant, "QEMU", 4);
>> -                stw_p(&sysib.cpu_addr, env->cpu_num);
>> +                stw_p(&sysib.cpu_addr, env->core_id);
>>                  stw_p(&sysib.cpu_id, 0);
>>                  cpu_physical_memory_write(a0, &sysib, sizeof(sysib));
>>              } else if ((sel1 == 2) && (sel2 == 2)) {
>> diff --git a/target/s390x/translate.c b/target/s390x/translate.c
>> index 909b12818d..5abd34fb34 100644
>> --- a/target/s390x/translate.c
>> +++ b/target/s390x/translate.c
>> @@ -3823,10 +3823,7 @@ static ExitStatus op_ssm(DisasContext *s, DisasOps *o)
>>  static ExitStatus op_stap(DisasContext *s, DisasOps *o)
>>  {
>>      check_privileged(s);
>> -    /* ??? Surely cpu address != cpu number.  In any case the previous
>> -       version of this stored more than the required half-word, so it
>> -       is unlikely this has ever been tested.  */
>> -    tcg_gen_ld32u_i64(o->out, cpu_env, offsetof(CPUS390XState, cpu_num));
>> +    tcg_gen_ld32u_i64(o->out, cpu_env, offsetof(CPUS390XState, core_id));
>>      return NO_EXIT;
>>  }
> I see core_id is used in several instructions,
> does it really have any influence on code executed by *-user target?
> 
Nope, these should all be privileged instructions and therefore not
relevant for -user targets.

-- 

Thanks,

David

  reply	other threads:[~2017-09-12 13:15 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-11 15:21 [Qemu-devel] [PATCH v4 00/21] s390x cleanups and CPU hotplug via device_add David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 01/21] exec, dump, i386, ppc, s390x: don't include exec/cpu-all.h explicitly David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 02/21] cpu: drop old comments describing members David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 03/21] s390x: get rid of s390-virtio.c David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 04/21] s390x: rename s390-virtio.h to s390-virtio-hcall.h David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 05/21] s390x: move s390_virtio_hypercall() " David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 06/21] s390x: move subsystem_reset() to s390-virtio-ccw.h David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 07/21] target/s390x: move some s390x typedefs to cpu-qom.h David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 08/21] s390x: move sclp_service_call() to sclp.h David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 09/21] target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault() David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 10/21] target/s390x: use program_interrupt() in per_check_exception() David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 11/21] s390x: allow only 1 CPU with TCG David Hildenbrand
2017-09-12 12:43   ` Igor Mammedov
2017-09-12 15:42     ` David Hildenbrand
2017-09-13  7:19       ` Igor Mammedov
2017-09-13 12:10         ` David Hildenbrand
2017-09-13 12:35           ` Cornelia Huck
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 12/21] target/s390x: set cpu->id for linux user when realizing David Hildenbrand
2017-09-12 12:46   ` Igor Mammedov
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 13/21] target/s390x: use "core-id" for cpu number/address/id handling David Hildenbrand
2017-09-12 13:07   ` Igor Mammedov
2017-09-12 13:15     ` David Hildenbrand [this message]
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 14/21] target/s390x: rename next_cpu_id to next_core_id David Hildenbrand
2017-09-12 13:09   ` Igor Mammedov
2017-09-12 13:16     ` David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 15/21] s390x: print CPU definitions in sorted order David Hildenbrand
2017-09-12 10:51   ` Christian Borntraeger
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 16/21] s390x: allow cpu hotplug via device_add David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 17/21] s390x: CPU hot unplug via device_del cannot work for now David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 18/21] s390x: implement query-hotpluggable-cpus David Hildenbrand
2017-09-12 13:43   ` Igor Mammedov
2017-09-12 14:03     ` David Hildenbrand
2017-09-12 14:24       ` Thomas Huth
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 19/21] s390x: get rid of cpu_s390x_create() David Hildenbrand
2017-09-12 13:50   ` Igor Mammedov
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 20/21] s390x: generate sclp cpu information from possible_cpus David Hildenbrand
2017-09-11 15:21 ` [Qemu-devel] [PATCH v4 21/21] s390x: allow CPU hotplug in random core-id order David Hildenbrand
2017-09-12 13:55 ` [Qemu-devel] [PATCH v4 00/21] s390x cleanups and CPU hotplug via device_add Igor Mammedov
2017-09-12 13:56   ` David Hildenbrand

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=55850e26-53da-474a-328c-f56bad58774b@redhat.com \
    --to=david@redhat.com \
    --cc=agraf@suse.de \
    --cc=armbru@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mjrosato@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.