[Qemu-devel] [PATCH v3 0/6] s390x/mmu: Storage key reference and change bit handling

David Hildenbrand posted 6 patches 4 years, 8 months ago
Test FreeBSD passed
Test docker-mingw@fedora passed
Test asan passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test s390x failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190816084708.602-1-david@redhat.com
Maintainers: Richard Henderson <rth@twiddle.net>, Cornelia Huck <cohuck@redhat.com>, David Hildenbrand <david@redhat.com>
target/s390x/cpu.h        |   7 ++
target/s390x/helper.c     |   5 ++
target/s390x/mem_helper.c |  10 +++
target/s390x/mmu_helper.c | 135 ++++++++++++++++++++++++--------------
4 files changed, 107 insertions(+), 50 deletions(-)
[Qemu-devel] [PATCH v3 0/6] s390x/mmu: Storage key reference and change bit handling
Posted by David Hildenbrand 4 years, 8 months ago
The first two patches are modified patches from:
    [PATCH-for-4.2 v1 0/9] s390x: MMU changes and extensions

This series primarily fixes minor things in the storage key handling code
in the MMU and implements fairly reliable reference and change bit handling
for TCG. To track the reference and change bit, we have to invalidate
TLB entries whenever the storage key is changed by the guest and make sure
not TLB entry is writable in case the storage key does not indicate a
change already.

With this series, the kvm-unit-test "skey" now passes. \o/

v2 -> v3:
- Reshuffled patches to avoid a temporary uninitialized return value
- Minor updates to patch descriptions
- "s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE"
-- Updated comments
- "s390x/mmu: Factor out storage key handling"
-- Reduce indentation

v1 -> v2:
- "s390x/tcg: Rework MMU selection for instruction fetches"
-- Cleanup return value handling
- Added RB's

Cc: Alex Bennée <alex.bennee@linaro.org>

David Hildenbrand (6):
  s390x/mmu: Trace the right value if setting/getting the storage key
    fails
  s390x/mmu: ASC selection in s390_cpu_get_phys_page_debug()
  s390x/tcg: Rework MMU selection for instruction fetches
  s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE
  s390x/mmu: Better storage key reference and change bit handling
  s390x/mmu: Factor out storage key handling

 target/s390x/cpu.h        |   7 ++
 target/s390x/helper.c     |   5 ++
 target/s390x/mem_helper.c |  10 +++
 target/s390x/mmu_helper.c | 135 ++++++++++++++++++++++++--------------
 4 files changed, 107 insertions(+), 50 deletions(-)

-- 
2.21.0


Re: [Qemu-devel] [PATCH v3 0/6] s390x/mmu: Storage key reference and change bit handling
Posted by Cornelia Huck 4 years, 8 months ago
On Fri, 16 Aug 2019 10:47:02 +0200
David Hildenbrand <david@redhat.com> wrote:

> The first two patches are modified patches from:
>     [PATCH-for-4.2 v1 0/9] s390x: MMU changes and extensions
> 
> This series primarily fixes minor things in the storage key handling code
> in the MMU and implements fairly reliable reference and change bit handling
> for TCG. To track the reference and change bit, we have to invalidate
> TLB entries whenever the storage key is changed by the guest and make sure
> not TLB entry is writable in case the storage key does not indicate a
> change already.
> 
> With this series, the kvm-unit-test "skey" now passes. \o/
> 
> v2 -> v3:
> - Reshuffled patches to avoid a temporary uninitialized return value
> - Minor updates to patch descriptions
> - "s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE"
> -- Updated comments
> - "s390x/mmu: Factor out storage key handling"
> -- Reduce indentation
> 
> v1 -> v2:
> - "s390x/tcg: Rework MMU selection for instruction fetches"
> -- Cleanup return value handling
> - Added RB's
> 
> Cc: Alex Bennée <alex.bennee@linaro.org>
> 
> David Hildenbrand (6):
>   s390x/mmu: Trace the right value if setting/getting the storage key
>     fails
>   s390x/mmu: ASC selection in s390_cpu_get_phys_page_debug()
>   s390x/tcg: Rework MMU selection for instruction fetches
>   s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE
>   s390x/mmu: Better storage key reference and change bit handling
>   s390x/mmu: Factor out storage key handling
> 
>  target/s390x/cpu.h        |   7 ++
>  target/s390x/helper.c     |   5 ++
>  target/s390x/mem_helper.c |  10 +++
>  target/s390x/mmu_helper.c | 135 ++++++++++++++++++++++++--------------
>  4 files changed, 107 insertions(+), 50 deletions(-)
> 

[Now the correct one...]

Thanks, applied.

Re: [Qemu-devel] [PATCH v3 0/6] s390x/mmu: Storage key reference and change bit handling
Posted by Cornelia Huck 4 years, 8 months ago
On Fri, 16 Aug 2019 10:47:02 +0200
David Hildenbrand <david@redhat.com> wrote:

> The first two patches are modified patches from:
>     [PATCH-for-4.2 v1 0/9] s390x: MMU changes and extensions
> 
> This series primarily fixes minor things in the storage key handling code
> in the MMU and implements fairly reliable reference and change bit handling
> for TCG. To track the reference and change bit, we have to invalidate
> TLB entries whenever the storage key is changed by the guest and make sure
> not TLB entry is writable in case the storage key does not indicate a
> change already.
> 
> With this series, the kvm-unit-test "skey" now passes. \o/
> 
> v2 -> v3:
> - Reshuffled patches to avoid a temporary uninitialized return value
> - Minor updates to patch descriptions
> - "s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE"
> -- Updated comments
> - "s390x/mmu: Factor out storage key handling"
> -- Reduce indentation
> 
> v1 -> v2:
> - "s390x/tcg: Rework MMU selection for instruction fetches"
> -- Cleanup return value handling
> - Added RB's
> 
> Cc: Alex Bennée <alex.bennee@linaro.org>
> 
> David Hildenbrand (6):
>   s390x/mmu: Trace the right value if setting/getting the storage key
>     fails
>   s390x/mmu: ASC selection in s390_cpu_get_phys_page_debug()
>   s390x/tcg: Rework MMU selection for instruction fetches
>   s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE
>   s390x/mmu: Better storage key reference and change bit handling
>   s390x/mmu: Factor out storage key handling
> 
>  target/s390x/cpu.h        |   7 ++
>  target/s390x/helper.c     |   5 ++
>  target/s390x/mem_helper.c |  10 +++
>  target/s390x/mmu_helper.c | 135 ++++++++++++++++++++++++--------------
>  4 files changed, 107 insertions(+), 50 deletions(-)
> 

Looks good to me now.

I can pick this up directly, or you can send me a pull request
(whichever you prefer).

Re: [Qemu-devel] [PATCH v3 0/6] s390x/mmu: Storage key reference and change bit handling
Posted by David Hildenbrand 4 years, 8 months ago
On 19.08.19 11:46, Cornelia Huck wrote:
> On Fri, 16 Aug 2019 10:47:02 +0200
> David Hildenbrand <david@redhat.com> wrote:
> 
>> The first two patches are modified patches from:
>>     [PATCH-for-4.2 v1 0/9] s390x: MMU changes and extensions
>>
>> This series primarily fixes minor things in the storage key handling code
>> in the MMU and implements fairly reliable reference and change bit handling
>> for TCG. To track the reference and change bit, we have to invalidate
>> TLB entries whenever the storage key is changed by the guest and make sure
>> not TLB entry is writable in case the storage key does not indicate a
>> change already.
>>
>> With this series, the kvm-unit-test "skey" now passes. \o/
>>
>> v2 -> v3:
>> - Reshuffled patches to avoid a temporary uninitialized return value
>> - Minor updates to patch descriptions
>> - "s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE"
>> -- Updated comments
>> - "s390x/mmu: Factor out storage key handling"
>> -- Reduce indentation
>>
>> v1 -> v2:
>> - "s390x/tcg: Rework MMU selection for instruction fetches"
>> -- Cleanup return value handling
>> - Added RB's
>>
>> Cc: Alex Bennée <alex.bennee@linaro.org>
>>
>> David Hildenbrand (6):
>>   s390x/mmu: Trace the right value if setting/getting the storage key
>>     fails
>>   s390x/mmu: ASC selection in s390_cpu_get_phys_page_debug()
>>   s390x/tcg: Rework MMU selection for instruction fetches
>>   s390x/tcg: Flush the TLB of all CPUs on SSKE and RRBE
>>   s390x/mmu: Better storage key reference and change bit handling
>>   s390x/mmu: Factor out storage key handling
>>
>>  target/s390x/cpu.h        |   7 ++
>>  target/s390x/helper.c     |   5 ++
>>  target/s390x/mem_helper.c |  10 +++
>>  target/s390x/mmu_helper.c | 135 ++++++++++++++++++++++++--------------
>>  4 files changed, 107 insertions(+), 50 deletions(-)
>>
> 
> Looks good to me now.
> 
> I can pick this up directly, or you can send me a pull request
> (whichever you prefer).
> 

If you have some spare cycles, please pick it up :) Whatever you prefer!

-- 

Thanks,

David / dhildenb