[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v1 08/12] s390x/mmu_helper: avoid setting the storage key if noth
From: |
David Hildenbrand |
Subject: |
[PATCH v1 08/12] s390x/mmu_helper: avoid setting the storage key if nothing changed |
Date: |
Thu, 5 Aug 2021 17:28:00 +0200 |
Avoid setting the key if nothing changed.
Signed-off-by: David Hildenbrand <david@redhat.com>
---
target/s390x/mmu_helper.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c
index 36ab4e9c81..0c2c39a970 100644
--- a/target/s390x/mmu_helper.c
+++ b/target/s390x/mmu_helper.c
@@ -301,7 +301,7 @@ static void mmu_handle_skey(target_ulong addr, int rw, int
*flags)
{
static S390SKeysClass *skeyclass;
static S390SKeysState *ss;
- uint8_t key;
+ uint8_t key, old_key;
int rc;
/*
@@ -337,6 +337,7 @@ static void mmu_handle_skey(target_ulong addr, int rw, int
*flags)
trace_get_skeys_nonzero(rc);
return;
}
+ old_key = key;
switch (rw) {
case MMU_DATA_LOAD:
@@ -360,9 +361,11 @@ static void mmu_handle_skey(target_ulong addr, int rw, int
*flags)
/* Any store/fetch sets the reference bit */
key |= SK_R;
- rc = skeyclass->set_skeys(ss, addr / TARGET_PAGE_SIZE, 1, &key);
- if (rc) {
- trace_set_skeys_nonzero(rc);
+ if (key != old_key) {
+ rc = skeyclass->set_skeys(ss, addr / TARGET_PAGE_SIZE, 1, &key);
+ if (rc) {
+ trace_set_skeys_nonzero(rc);
+ }
}
}
--
2.31.1
- Re: [PATCH v1 05/12] s390x/mmu_helper: no need to pass access type to mmu_translate_asce(), (continued)
Re: [PATCH v1 07/12] s390x/mmu_helper: move address validation into mmu_translate*(), Thomas Huth, 2021/08/06
[PATCH v1 08/12] s390x/mmu_helper: avoid setting the storage key if nothing changed,
David Hildenbrand <=
[PATCH v1 09/12] hw/s390x/s390-skeys: use memory mapping to detect which storage keys to migrate, David Hildenbrand, 2021/08/05
[PATCH v1 10/12] hw/s390x/s390-skeys: use memory mapping to detect which storage keys to dump, David Hildenbrand, 2021/08/05
[PATCH v1 11/12] hw/s390x/s390-skeys: check if an address is valid before dumping the key, David Hildenbrand, 2021/08/05
[PATCH v1 12/12] hw/s390x/s390-skeys: lazy storage key enablement under TCG, David Hildenbrand, 2021/08/05