Message ID | 20170920153016.3858-1-david@redhat.com |
---|---|
Headers | show |
Series | Implement basic MSA functions | expand |
On Wed, 20 Sep 2017 17:30:13 +0200 David Hildenbrand <david@redhat.com> wrote: > Some leftover from "target/s390x: tcg improvments + MSA functions". > > Implement all basic MSA (cpacf/crypto) instructions <= z13. Only provide > the query subfunction (to query available subfunctions), no actual > de/encryption yet. Good enough to unlock the STFL bits. > > I have written kvm-unit-tests for MSA functions and for SPM/IPM. Will > send them out soon. I use the following cpu model to test with an upstream > kernel compiled for z10: > > ... -cpu qemu,mvcos=on,stfle=on,ldisp=on,ldisphp=on,\ > eimm=on,stckf=on,csst=on,csst2=on,ginste=on,\ > exrl=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on ... > > Available on: https://github.com/davidhildenbrand/qemu.git s390x-msa I used the following cpu model: -cpu qemu,eimm=on,ldisp=on,stckf=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on and got qemu-system-s390x: warning: 'msa5-base' requires 'kimd-sha-512'. qemu-system-s390x: warning: 'msa5-base' requires 'klmd-sha-512'. (It works anyway.) However, -cpu qemu,eimm=on,ldisp=on,stckf=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on,kimd-sha-512=on gives qemu-system-s390x: can't apply global qemu-s390-cpu.kimd-sha-512=on: Feature 'kimd-sha-512' is not available for CPU model 'z900', it was introduced with later models. which is a bit confusing. So I'm wondering whether providing msa5-base without the providing the algorithms above is sane - or whether it is just enough to satisfy some kernels. [Double-checking the various dependencies looks impossible without access to IBM doc, anyway - I just hope you got it right back then :)]
On 21.09.2017 10:23, Cornelia Huck wrote: > On Wed, 20 Sep 2017 17:30:13 +0200 > David Hildenbrand <david@redhat.com> wrote: > >> Some leftover from "target/s390x: tcg improvments + MSA functions". >> >> Implement all basic MSA (cpacf/crypto) instructions <= z13. Only provide >> the query subfunction (to query available subfunctions), no actual >> de/encryption yet. Good enough to unlock the STFL bits. >> >> I have written kvm-unit-tests for MSA functions and for SPM/IPM. Will >> send them out soon. I use the following cpu model to test with an upstream >> kernel compiled for z10: >> >> ... -cpu qemu,mvcos=on,stfle=on,ldisp=on,ldisphp=on,\ >> eimm=on,stckf=on,csst=on,csst2=on,ginste=on,\ >> exrl=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on ... >> >> Available on: https://github.com/davidhildenbrand/qemu.git s390x-msa > > I used the following cpu model: > > -cpu qemu,eimm=on,ldisp=on,stckf=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on > > and got > > qemu-system-s390x: warning: 'msa5-base' requires 'kimd-sha-512'. > qemu-system-s390x: warning: 'msa5-base' requires 'klmd-sha-512'. > Yes, I am aware of that and it is on my todo list. Shouldn't matter for now as it is completely optional and not enabled as default. > (It works anyway.) > > However, > > -cpu qemu,eimm=on,ldisp=on,stckf=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on,kimd-sha-512=on > > gives > > qemu-system-s390x: can't apply global qemu-s390-cpu.kimd-sha-512=on: Feature 'kimd-sha-512' is not available for CPU model 'z900', it was introduced with later models. > > which is a bit confusing. Due to the way we hack up the qemu cpu model, allowing to set features that are theoretically not possible (just to have some way of enabling them before we can change the qemu model to something never). > > So I'm wondering whether providing msa5-base without the providing the > algorithms above is sane - or whether it is just enough to satisfy some > kernels. > > [Double-checking the various dependencies looks impossible without > access to IBM doc, anyway - I just hope you got it right back then :)] > We can take care of that later (if at all relevant).
On Wed, 20 Sep 2017 17:30:13 +0200 David Hildenbrand <david@redhat.com> wrote: > Some leftover from "target/s390x: tcg improvments + MSA functions". > > Implement all basic MSA (cpacf/crypto) instructions <= z13. Only provide > the query subfunction (to query available subfunctions), no actual > de/encryption yet. Good enough to unlock the STFL bits. > > I have written kvm-unit-tests for MSA functions and for SPM/IPM. Will > send them out soon. I use the following cpu model to test with an upstream > kernel compiled for z10: > > ... -cpu qemu,mvcos=on,stfle=on,ldisp=on,ldisphp=on,\ > eimm=on,stckf=on,csst=on,csst2=on,ginste=on,\ > exrl=on,msa-base=on,msa3-base=on,msa4-base=on,msa5-base=on ... > > Available on: https://github.com/davidhildenbrand/qemu.git s390x-msa > > v2 -> v3: > - "s390x/tcg: add basic MSA features" > -- drop one check (fc >= 128) that can due to masking never happen > > v1 -> v2: > - "s390x/tcg: implement spm (SET PROGRAM MASK)" > -- use tcg_gen_extrl_i64_i32 + tcg_gen_extract_i32 > - "s390x/tcg: move wrap_address() to internal.h" > -- internal.h instead of cpu.h > - "s390x/tcg: add basic MSA features" > -- minor style fixes > > > David Hildenbrand (3): > s390x/tcg: implement spm (SET PROGRAM MASK) > s390x/tcg: move wrap_address() to internal.h > s390x/tcg: add basic MSA features > > target/s390x/Makefile.objs | 2 +- > target/s390x/cpu.h | 2 ++ > target/s390x/cpu_models.c | 4 +++ > target/s390x/crypto_helper.c | 65 ++++++++++++++++++++++++++++++++++++++++++ > target/s390x/helper.h | 1 + > target/s390x/insn-data.def | 15 ++++++++++ > target/s390x/internal.h | 14 +++++++++ > target/s390x/mem_helper.c | 14 --------- > target/s390x/translate.c | 67 ++++++++++++++++++++++++++++++++++++++++++++ > 9 files changed, 169 insertions(+), 15 deletions(-) > create mode 100644 target/s390x/crypto_helper.c > Thanks, applied.