All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: David Hildenbrand <david@redhat.com>, qemu-devel@nongnu.org
Cc: thuth@redhat.com, pmorel@linux.ibm.com, cohuck@redhat.com,
	borntraeger@de.ibm.com, qemu-s390x@nongnu.org,
	mihajlov@linux.ibm.com
Subject: Re: [PATCH v2 4/5] s390x: Move clear reset
Date: Fri, 22 Nov 2019 17:53:59 +0100	[thread overview]
Message-ID: <031245df-971d-e75b-140f-42f22b7ad451@linux.ibm.com> (raw)
In-Reply-To: <13192666-7c97-f3fd-fa8d-84a037dae286@redhat.com>


[-- Attachment #1.1: Type: text/plain, Size: 2682 bytes --]

On 11/22/19 3:30 PM, David Hildenbrand wrote:
> On 22.11.19 15:00, Janosch Frank wrote:
>> Let's also move the clear reset function into the reset handler.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>>  target/s390x/cpu-qom.h |  1 +
>>  target/s390x/cpu.c     | 50 ++++++++----------------------------------
>>  2 files changed, 10 insertions(+), 41 deletions(-)
>>
>> diff --git a/target/s390x/cpu-qom.h b/target/s390x/cpu-qom.h
>> index 6f0a12042e..dbe5346ec9 100644
>> --- a/target/s390x/cpu-qom.h
>> +++ b/target/s390x/cpu-qom.h
>> @@ -37,6 +37,7 @@ typedef struct S390CPUDef S390CPUDef;
>>  typedef enum cpu_reset_type {
>>      S390_CPU_RESET_NORMAL,
>>      S390_CPU_RESET_INITIAL,
>> +    S390_CPU_RESET_CLEAR,
>>  } cpu_reset_type;
>>  
>>  /**
>> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
>> index 1f423fb676..017181fe4a 100644
>> --- a/target/s390x/cpu.c
>> +++ b/target/s390x/cpu.c
>> @@ -94,6 +94,9 @@ static void s390_cpu_reset(CPUState *s, cpu_reset_type type)
>>      s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu);
>>  
>>      switch (type) {
>> +    case S390_CPU_RESET_CLEAR:
>> +        memset(env, 0, offsetof(CPUS390XState, start_initial_reset_fields));
> 
> I think the preferred term in QEMU is "fall through".
> 
>> +        /* Fallthrough */
>>      case S390_CPU_RESET_INITIAL:
>>          /* initial reset does not clear everything! */
>>          memset(&env->start_initial_reset_fields, 0,
>> @@ -121,46 +124,6 @@ static void s390_cpu_reset(CPUState *s, cpu_reset_type type)
>>      }
>>  }
>>  
>> -/* CPUClass:reset() */
>> -static void s390_cpu_full_reset(CPUState *s)
>> -{
>> -    S390CPU *cpu = S390_CPU(s);
>> -    S390CPUClass *scc = S390_CPU_GET_CLASS(cpu);
>> -    CPUS390XState *env = &cpu->env;
>> -
>> -    scc->parent_reset(s);
>> -    cpu->env.sigp_order = 0;
>> -    s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu);
>> -
>> -    memset(env, 0, offsetof(CPUS390XState, end_reset_fields));
>> -
>> -    /* architectured initial values for CR 0 and 14 */
>> -    env->cregs[0] = CR0_RESET;
>> -    env->cregs[14] = CR14_RESET;
>> -
>> -#if defined(CONFIG_USER_ONLY)
>> -    /* user mode should always be allowed to use the full FPU */
>> -    env->cregs[0] |= CR0_AFP;
>> -    if (s390_has_feat(S390_FEAT_VECTOR)) {
>> -        env->cregs[0] |= CR0_VECTOR;
>> -    }
>> -#endif
> 
> Huh, what happened to that change?

Seems like I missed it

> 
> Note that we now also do "env->bpbc = false" - is that ok?

That's ok, clear and initial reset do a memset to bpbc, but as reset
normal doesn't we need to set it explicitly.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-11-22 17:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-22 13:59 [PATCH v2 0/5] s390x: Reset cleanup Janosch Frank
2019-11-22 13:59 ` [PATCH v2 1/5] s390x: Don't do a normal reset on the initial cpu Janosch Frank
2019-11-22 16:17   ` Cornelia Huck
2019-11-22 16:55     ` Janosch Frank
2019-11-22 13:59 ` [PATCH v2 2/5] s390x: Move reset normal to shared reset handler Janosch Frank
2019-11-22 14:12   ` David Hildenbrand
2019-11-22 14:00 ` [PATCH v2 3/5] s390x: Move initial reset Janosch Frank
2019-11-22 14:21   ` David Hildenbrand
2019-11-22 14:00 ` [PATCH v2 4/5] s390x: Move clear reset Janosch Frank
2019-11-22 14:30   ` David Hildenbrand
2019-11-22 16:53     ` Janosch Frank [this message]
2019-11-22 17:15     ` Janosch Frank
2019-11-22 17:17       ` David Hildenbrand
2019-11-22 14:00 ` [PATCH v2 5/5] s390x: Beautify diag308 handling Janosch Frank

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=031245df-971d-e75b-140f-42f22b7ad451@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=mihajlov@linux.ibm.com \
    --cc=pmorel@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.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.