Messages in this thread Patch in this message | | | From | Claudio Imbrenda <> | Subject | [PATCH v6 11/17] s390/mm: KVM: pv: when tearing down, try to destroy protected pages | Date | Fri, 3 Dec 2021 17:58:08 +0100 |
| |
When ptep_get_and_clear_full is called for a mm teardown, we will now attempt to destroy the secure pages. This will be faster than export.
In case it was not a teardown, or if for some reason the destroy page UVC failed, we try with an export page, like before.
Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com> --- arch/s390/include/asm/pgtable.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 23ca0d8e058a..c008b354573e 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1118,9 +1118,14 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, } else { res = ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID)); } + /* Nothing to do */ + if (!mm_is_protected(mm) || !pte_present(res)) + return res; /* At this point the reference through the mapping is still present */ - if (mm_is_protected(mm) && pte_present(res)) - uv_convert_owned_from_secure(pte_val(res) & PAGE_MASK); + if (full && !uv_destroy_owned_page(pte_val(res) & PAGE_MASK)) + return res; + /* If could not destroy, we try export */ + uv_convert_owned_from_secure(pte_val(res) & PAGE_MASK); return res; } -- 2.31.1
| |