mbox series

[v2,0/9] s390x/tcg: Implement some z14 facilities

Message ID 20200928122717.30586-1-david@redhat.com
Headers show
Series s390x/tcg: Implement some z14 facilities | expand

Message

David Hildenbrand Sept. 28, 2020, 12:27 p.m. UTC
With this patchset, I can boot a kernel compiled for z14 (requiring
Miscellaneous-Instruction-Extensions Facility 2) (using -cpu max).

I am currently working on "vector-enhancements facility 1", I have most
stuff in place except:
- VECTOR FP (MAXIMUM|MINIMUM): needs some manual work to cover all types of
                               comparisons.

Once we have that in place, we can convert the QEMU machine to a
stripped-down z14.

v1 -> v2:
- "s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
   S390_FEAT_MISC_INSTRUCTION_EXT2"
-- Added
- "s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)"
-- Use new helper instead
- "s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)"
-- Tune comparisons in CC computation

David Hildenbrand (9):
  s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
    S390_FEAT_MISC_INSTRUCTION_EXT2
  s390x/tcg: Implement ADD HALFWORD (AGH)
  s390x/tcg: Implement SUBTRACT HALFWORD (SGH)
  s390x/tcg: Implement MULTIPLY (MG, MGRK)
  s390x/tcg: Implement MULTIPLY HALFWORD (MGH)
  s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)
  s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)
  s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2
  s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)

 target/s390x/cc_helper.c            | 32 +++++++++++++++++++
 target/s390x/cpu_features_def.h.inc |  2 +-
 target/s390x/gen-features.c         |  4 ++-
 target/s390x/helper.c               |  2 ++
 target/s390x/insn-data.def          | 12 ++++++++
 target/s390x/internal.h             |  2 ++
 target/s390x/translate.c            | 48 +++++++++++++++++++++++++++++
 7 files changed, 100 insertions(+), 2 deletions(-)

Comments

David Hildenbrand Sept. 28, 2020, 12:55 p.m. UTC | #1
On 28.09.20 14:50, Christian Borntraeger wrote:
> 
> 
> On 28.09.20 14:27, David Hildenbrand wrote:
>> Let's avoid confusion with the "Miscellaneous-Instruction-Extensions
>> Facility 1"
>>
>> Suggested-by: Thomas Huth <thuth@redhat.com>
>> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> ---
>>  target/s390x/cpu_features_def.h.inc | 2 +-
> 
> strange this is target/s390x/cpu_features_def.inc.h in my repo?

Seems to be due to upstream

commit 0979ed017f093ead3c011513a3a79517ed75bd00
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Feb 4 12:41:01 2020 +0100

    meson: rename .inc.h files to .h.inc

    Make it consistent with '.c.inc' and '.rst.inc'.
no-reply@patchew.org Sept. 28, 2020, 1:36 p.m. UTC | #2
Patchew URL: https://patchew.org/QEMU/20200928122717.30586-1-david@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20200928122717.30586-1-david@redhat.com
Subject: [PATCH v2 0/9] s390x/tcg: Implement some z14 facilities

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 - [tag update]      patchew/20200925162316.21205-1-peter.maydell@linaro.org -> patchew/20200925162316.21205-1-peter.maydell@linaro.org
 * [new tag]         patchew/20200928061201.1601-1-wangzhiqiang.bj@bytedance.com -> patchew/20200928061201.1601-1-wangzhiqiang.bj@bytedance.com
 * [new tag]         patchew/20200928092705.3730-1-wangzhiqiang.bj@bytedance.com -> patchew/20200928092705.3730-1-wangzhiqiang.bj@bytedance.com
 * [new tag]         patchew/20200928125859.734287-1-philmd@redhat.com -> patchew/20200928125859.734287-1-philmd@redhat.com
 * [new tag]         patchew/20200928131934.739451-1-philmd@redhat.com -> patchew/20200928131934.739451-1-philmd@redhat.com
Switched to a new branch 'test'
9d42c6b s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)
33bb426 s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2
749f183 s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)
48d85e6 s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)
ce04e77 s390x/tcg: Implement MULTIPLY HALFWORD (MGH)
96f9c9c s390x/tcg: Implement MULTIPLY (MG, MGRK)
ff5b047 s390x/tcg: Implement SUBTRACT HALFWORD (SGH)
18f2055 s390x/tcg: Implement ADD HALFWORD (AGH)
7533d8f s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT -> S390_FEAT_MISC_INSTRUCTION_EXT2

=== OUTPUT BEGIN ===
1/9 Checking commit 7533d8fd7ca1 (s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT -> S390_FEAT_MISC_INSTRUCTION_EXT2)
2/9 Checking commit 18f20555ed6f (s390x/tcg: Implement ADD HALFWORD (AGH))
ERROR: line over 90 characters
#34: FILE: target/s390x/translate.c:6101:
+#define FAC_MIE2        S390_FEAT_MISC_INSTRUCTION_EXT2 /* miscellaneous-instruction-extensions facility 2 */

total: 1 errors, 0 warnings, 14 lines checked

Patch 2/9 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

3/9 Checking commit ff5b0476125c (s390x/tcg: Implement SUBTRACT HALFWORD (SGH))
4/9 Checking commit 96f9c9cac0e7 (s390x/tcg: Implement MULTIPLY (MG, MGRK))
5/9 Checking commit ce04e77373db (s390x/tcg: Implement MULTIPLY HALFWORD (MGH))
6/9 Checking commit 48d85e6436bb (s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC))
7/9 Checking commit 749f183b9be4 (s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC))
8/9 Checking commit 33bb426469fd (s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2)
9/9 Checking commit 9d42c6b7f1f8 (s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA))
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200928122717.30586-1-david@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Cornelia Huck Oct. 1, 2020, 7 a.m. UTC | #3
On Mon, 28 Sep 2020 14:27:08 +0200
David Hildenbrand <david@redhat.com> wrote:

> With this patchset, I can boot a kernel compiled for z14 (requiring
> Miscellaneous-Instruction-Extensions Facility 2) (using -cpu max).
> 
> I am currently working on "vector-enhancements facility 1", I have most
> stuff in place except:
> - VECTOR FP (MAXIMUM|MINIMUM): needs some manual work to cover all types of
>                                comparisons.
> 
> Once we have that in place, we can convert the QEMU machine to a
> stripped-down z14.
> 
> v1 -> v2:
> - "s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>    S390_FEAT_MISC_INSTRUCTION_EXT2"
> -- Added
> - "s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)"
> -- Use new helper instead
> - "s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)"
> -- Tune comparisons in CC computation
> 
> David Hildenbrand (9):
>   s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>     S390_FEAT_MISC_INSTRUCTION_EXT2
>   s390x/tcg: Implement ADD HALFWORD (AGH)
>   s390x/tcg: Implement SUBTRACT HALFWORD (SGH)
>   s390x/tcg: Implement MULTIPLY (MG, MGRK)
>   s390x/tcg: Implement MULTIPLY HALFWORD (MGH)
>   s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)
>   s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)
>   s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2
>   s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)
> 
>  target/s390x/cc_helper.c            | 32 +++++++++++++++++++
>  target/s390x/cpu_features_def.h.inc |  2 +-
>  target/s390x/gen-features.c         |  4 ++-
>  target/s390x/helper.c               |  2 ++
>  target/s390x/insn-data.def          | 12 ++++++++
>  target/s390x/internal.h             |  2 ++
>  target/s390x/translate.c            | 48 +++++++++++++++++++++++++++++
>  7 files changed, 100 insertions(+), 2 deletions(-)

Working on preparing a pull request... I think this still misses review
on two patches?
Richard Henderson Oct. 1, 2020, 2:53 p.m. UTC | #4
On 9/28/20 7:27 AM, David Hildenbrand wrote:
> Just like BRANCH ON CONDITION - however the address is read from memory
> (always 8 bytes are read), we have to wrap the address manually. The
> address is read using current CPU DAT/address-space controls, just like
> ordinary data.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  target/s390x/insn-data.def | 2 ++
>  target/s390x/translate.c   | 8 ++++++++
>  2 files changed, 10 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Richard Henderson Oct. 1, 2020, 2:54 p.m. UTC | #5
On 9/28/20 7:27 AM, David Hildenbrand wrote:
> We need new CC handling, determining the CC based on the intermediate
> result (64bit for MSC and MSRKC, 128bit for MSGC and MSGRKC).
> 
> We want to store out2 ("low") after muls128 to r1, so add
> "wout_out2_r1".
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  target/s390x/cc_helper.c   | 32 ++++++++++++++++++++++++++++++++
>  target/s390x/helper.c      |  2 ++
>  target/s390x/insn-data.def |  4 ++++
>  target/s390x/internal.h    |  2 ++
>  target/s390x/translate.c   | 19 +++++++++++++++++++
>  5 files changed, 59 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Cornelia Huck Oct. 1, 2020, 5:02 p.m. UTC | #6
On Mon, 28 Sep 2020 14:27:08 +0200
David Hildenbrand <david@redhat.com> wrote:

> With this patchset, I can boot a kernel compiled for z14 (requiring
> Miscellaneous-Instruction-Extensions Facility 2) (using -cpu max).
> 
> I am currently working on "vector-enhancements facility 1", I have most
> stuff in place except:
> - VECTOR FP (MAXIMUM|MINIMUM): needs some manual work to cover all types of
>                                comparisons.
> 
> Once we have that in place, we can convert the QEMU machine to a
> stripped-down z14.
> 
> v1 -> v2:
> - "s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>    S390_FEAT_MISC_INSTRUCTION_EXT2"
> -- Added
> - "s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)"
> -- Use new helper instead
> - "s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)"
> -- Tune comparisons in CC computation
> 
> David Hildenbrand (9):
>   s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>     S390_FEAT_MISC_INSTRUCTION_EXT2
>   s390x/tcg: Implement ADD HALFWORD (AGH)
>   s390x/tcg: Implement SUBTRACT HALFWORD (SGH)
>   s390x/tcg: Implement MULTIPLY (MG, MGRK)
>   s390x/tcg: Implement MULTIPLY HALFWORD (MGH)
>   s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)
>   s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)
>   s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2
>   s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)
> 
>  target/s390x/cc_helper.c            | 32 +++++++++++++++++++
>  target/s390x/cpu_features_def.h.inc |  2 +-
>  target/s390x/gen-features.c         |  4 ++-
>  target/s390x/helper.c               |  2 ++
>  target/s390x/insn-data.def          | 12 ++++++++
>  target/s390x/internal.h             |  2 ++
>  target/s390x/translate.c            | 48 +++++++++++++++++++++++++++++
>  7 files changed, 100 insertions(+), 2 deletions(-)
> 

Thanks, applied.
David Hildenbrand Oct. 1, 2020, 5:03 p.m. UTC | #7
On 01.10.20 19:02, Cornelia Huck wrote:
> On Mon, 28 Sep 2020 14:27:08 +0200
> David Hildenbrand <david@redhat.com> wrote:
> 
>> With this patchset, I can boot a kernel compiled for z14 (requiring
>> Miscellaneous-Instruction-Extensions Facility 2) (using -cpu max).
>>
>> I am currently working on "vector-enhancements facility 1", I have most
>> stuff in place except:
>> - VECTOR FP (MAXIMUM|MINIMUM): needs some manual work to cover all types of
>>                                comparisons.
>>
>> Once we have that in place, we can convert the QEMU machine to a
>> stripped-down z14.
>>
>> v1 -> v2:
>> - "s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>>    S390_FEAT_MISC_INSTRUCTION_EXT2"
>> -- Added
>> - "s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)"
>> -- Use new helper instead
>> - "s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)"
>> -- Tune comparisons in CC computation
>>
>> David Hildenbrand (9):
>>   s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->
>>     S390_FEAT_MISC_INSTRUCTION_EXT2
>>   s390x/tcg: Implement ADD HALFWORD (AGH)
>>   s390x/tcg: Implement SUBTRACT HALFWORD (SGH)
>>   s390x/tcg: Implement MULTIPLY (MG, MGRK)
>>   s390x/tcg: Implement MULTIPLY HALFWORD (MGH)
>>   s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)
>>   s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)
>>   s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2
>>   s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)
>>
>>  target/s390x/cc_helper.c            | 32 +++++++++++++++++++
>>  target/s390x/cpu_features_def.h.inc |  2 +-
>>  target/s390x/gen-features.c         |  4 ++-
>>  target/s390x/helper.c               |  2 ++
>>  target/s390x/insn-data.def          | 12 ++++++++
>>  target/s390x/internal.h             |  2 ++
>>  target/s390x/translate.c            | 48 +++++++++++++++++++++++++++++
>>  7 files changed, 100 insertions(+), 2 deletions(-)
>>
> 
> Thanks, applied.
> 

Can you rename in patch #1 subject "s390x/cpu_model" ->
"s390x/cpumodel"? Thanks!
Cornelia Huck Oct. 1, 2020, 5:06 p.m. UTC | #8
On Thu, 1 Oct 2020 19:03:39 +0200
David Hildenbrand <david@redhat.com> wrote:

> On 01.10.20 19:02, Cornelia Huck wrote:

> > On Mon, 28 Sep 2020 14:27:08 +0200

> > David Hildenbrand <david@redhat.com> wrote:

> >   

> >> With this patchset, I can boot a kernel compiled for z14 (requiring

> >> Miscellaneous-Instruction-Extensions Facility 2) (using -cpu max).

> >>

> >> I am currently working on "vector-enhancements facility 1", I have most

> >> stuff in place except:

> >> - VECTOR FP (MAXIMUM|MINIMUM): needs some manual work to cover all types of

> >>                                comparisons.

> >>

> >> Once we have that in place, we can convert the QEMU machine to a

> >> stripped-down z14.

> >>

> >> v1 -> v2:

> >> - "s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->

> >>    S390_FEAT_MISC_INSTRUCTION_EXT2"

> >> -- Added

> >> - "s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)"

> >> -- Use new helper instead

> >> - "s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)"

> >> -- Tune comparisons in CC computation

> >>

> >> David Hildenbrand (9):

> >>   s390x/cpu_model: S390_FEAT_MISC_INSTRUCTION_EXT ->

> >>     S390_FEAT_MISC_INSTRUCTION_EXT2

> >>   s390x/tcg: Implement ADD HALFWORD (AGH)

> >>   s390x/tcg: Implement SUBTRACT HALFWORD (SGH)

> >>   s390x/tcg: Implement MULTIPLY (MG, MGRK)

> >>   s390x/tcg: Implement MULTIPLY HALFWORD (MGH)

> >>   s390x/tcg: Implement BRANCH INDIRECT ON CONDITION (BIC)

> >>   s390x/tcg: Implement MULTIPLY SINGLE (MSC, MSGC, MSGRKC, MSRKC)

> >>   s390x/tcg: We support Miscellaneous-Instruction-Extensions Facility 2

> >>   s390x/tcg: Implement CIPHER MESSAGE WITH AUTHENTICATION (KMA)

> >>

> >>  target/s390x/cc_helper.c            | 32 +++++++++++++++++++

> >>  target/s390x/cpu_features_def.h.inc |  2 +-

> >>  target/s390x/gen-features.c         |  4 ++-

> >>  target/s390x/helper.c               |  2 ++

> >>  target/s390x/insn-data.def          | 12 ++++++++

> >>  target/s390x/internal.h             |  2 ++

> >>  target/s390x/translate.c            | 48 +++++++++++++++++++++++++++++

> >>  7 files changed, 100 insertions(+), 2 deletions(-)

> >>  

> > 

> > Thanks, applied.

> >   

> 

> Can you rename in patch #1 subject "s390x/cpu_model" ->

> "s390x/cpumodel"? Thanks!


As you wish :) Pushed out.