From: Thomas Huth <thuth@redhat.com>
To: Janosch Frank <frankja@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Subject: Re: [kvm-unit-tests PATCH v2 3/3] s390x: Load reset psw on diag308 reset
Date: Wed, 13 Nov 2019 11:31:15 +0100 [thread overview]
Message-ID: <e54ce8f8-7ed5-3eee-6715-8b5051cb49fb@redhat.com> (raw)
In-Reply-To: <1dac633a-65f3-5331-ecd7-6173acffa360@linux.ibm.com>
[-- Attachment #1.1: Type: text/plain, Size: 3324 bytes --]
On 13/11/2019 11.04, Janosch Frank wrote:
> On 11/12/19 5:17 PM, Thomas Huth wrote:
>> On 12/11/2019 14.42, Janosch Frank wrote:
>>> On 11/12/19 1:09 PM, David Hildenbrand wrote:
>>>> On 11.11.19 16:33, Janosch Frank wrote:
>>>>> On a diag308 subcode 0 CRs will be reset, so we need a PSW mask
>>>>> without DAT. Also we need to set the short psw indication to be
>>>>> compliant with the architecture.
>>>>>
>>>>> Let's therefore define a reset PSW mask with 64 bit addressing and
>>>>> short PSW indication that is compliant with architecture and use it.
>>>>>
>>>>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>>>>> ---
>>>>> lib/s390x/asm-offsets.c | 1 +
>>>>> lib/s390x/asm/arch_def.h | 3 ++-
>>>>> s390x/cstart64.S | 24 +++++++++++++++++-------
>>>>> 3 files changed, 20 insertions(+), 8 deletions(-)
>>>>>
>>>>> diff --git a/lib/s390x/asm-offsets.c b/lib/s390x/asm-offsets.c
>>>>> index 4b213f8..61d2658 100644
>>>>> --- a/lib/s390x/asm-offsets.c
>>>>> +++ b/lib/s390x/asm-offsets.c
>>>>> @@ -58,6 +58,7 @@ int main(void)
>>>>> OFFSET(GEN_LC_SW_INT_FPRS, lowcore, sw_int_fprs);
>>>>> OFFSET(GEN_LC_SW_INT_FPC, lowcore, sw_int_fpc);
>>>>> OFFSET(GEN_LC_SW_INT_CRS, lowcore, sw_int_crs);
>>>>> + OFFSET(GEN_LC_SW_INT_PSW, lowcore, sw_int_psw);
>>>>> OFFSET(GEN_LC_MCCK_EXT_SA_ADDR, lowcore, mcck_ext_sa_addr);
>>>>> OFFSET(GEN_LC_FPRS_SA, lowcore, fprs_sa);
>>>>> OFFSET(GEN_LC_GRS_SA, lowcore, grs_sa);
>>>>> diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h
>>>>> index 07d4e5e..7d25e4f 100644
>>>>> --- a/lib/s390x/asm/arch_def.h
>>>>> +++ b/lib/s390x/asm/arch_def.h
>>>>> @@ -79,7 +79,8 @@ struct lowcore {
>>>>> uint32_t sw_int_fpc; /* 0x0300 */
>>>>> uint8_t pad_0x0304[0x0308 - 0x0304]; /* 0x0304 */
>>>>> uint64_t sw_int_crs[16]; /* 0x0308 */
>>>>> - uint8_t pad_0x0310[0x11b0 - 0x0388]; /* 0x0388 */
>>>>> + struct psw sw_int_psw; /* 0x0388 */
>>>>> + uint8_t pad_0x0310[0x11b0 - 0x0390]; /* 0x0390 */
>>>>> uint64_t mcck_ext_sa_addr; /* 0x11b0 */
>>>>> uint8_t pad_0x11b8[0x1200 - 0x11b8]; /* 0x11b8 */
>>>>> uint64_t fprs_sa[16]; /* 0x1200 */
>> [...]
>>>> This patch breaks the smp test under TCG (no clue and no time to look
>>>> into the details :) ):
>>>
>>> I forgot to fixup the offset calculation at the top of the patch once
>>> again...
>>
>> Maybe add a
>>
>> _Static_assert(sizeof(struct lowcore) == xyz)
>>
>> after the struct definitions, to avoid that this happens again?
>>
>> Thomas
>>
>
> How about this?
> Or do we want to extend the struct to 8K and test for that?
>
> diff --git i/lib/s390x/asm/arch_def.h w/lib/s390x/asm/arch_def.h
> index 5f034a7..cf6e1ca 100644
> --- i/lib/s390x/asm/arch_def.h
> +++ w/lib/s390x/asm/arch_def.h
> @@ -99,6 +99,7 @@ struct lowcore {
> uint8_t pad_0x1400[0x1800 - 0x1400]; /* 0x1400 */
> uint8_t pgm_int_tdb[0x1900 - 0x1800]; /* 0x1800 */
> } __attribute__ ((__packed__));
> +_Static_assert(sizeof(struct lowcore) == 0x1900, "Lowcore size");
Fine for me either way (either checking for 0x1900 or extending the
struct to 8192).
Hmm, maybe we should go with 0x1900 for now, and extend the struct to
8192 bytes later if there is a reason to do it.
Thomas
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-11-13 10:31 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-11 15:33 [kvm-unit-tests PATCH v2 0/3] s390x: Improve architectural compliance for diag308 Janosch Frank
2019-11-11 15:33 ` [kvm-unit-tests PATCH v2 1/3] s390x: Fix initial cr0 load comments Janosch Frank
2019-11-12 9:25 ` Thomas Huth
2019-11-11 15:33 ` [kvm-unit-tests PATCH v2 2/3] s390x: Add CR save area Janosch Frank
2019-11-11 17:22 ` David Hildenbrand
2019-11-12 9:41 ` Thomas Huth
2019-11-11 15:33 ` [kvm-unit-tests PATCH v2 3/3] s390x: Load reset psw on diag308 reset Janosch Frank
2019-11-12 9:53 ` Thomas Huth
2019-11-12 12:09 ` David Hildenbrand
2019-11-12 13:42 ` Janosch Frank
2019-11-12 16:17 ` Thomas Huth
2019-11-13 10:04 ` Janosch Frank
2019-11-13 10:31 ` Thomas Huth [this message]
2019-11-13 11:24 ` [kvm-unit-tests PATCH v4] " Janosch Frank
2019-11-13 18:06 ` David Hildenbrand
2019-11-14 7:24 ` Janosch Frank
2019-11-12 13:45 ` [kvm-unit-tests PATCH v3] " Janosch Frank
2019-11-12 12:10 ` [kvm-unit-tests PATCH v2 0/3] s390x: Improve architectural compliance for diag308 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=e54ce8f8-7ed5-3eee-6715-8b5051cb49fb@redhat.com \
--to=thuth@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
/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