projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e509861
)
s390/pgtable: skip pgste updates on full flush
author
Martin Schwidefsky
<
[email protected]
>
Fri, 19 Jul 2013 08:31:55 +0000
(10:31 +0200)
committer
Martin Schwidefsky
<
[email protected]
>
Thu, 22 Aug 2013 10:20:06 +0000
(12:20 +0200)
On process exit there is no more need for the pgste information.
Skip the expensive storage key operations which should speed up
termination of KVM processes.
Signed-off-by: Martin Schwidefsky <
[email protected]
>
arch/s390/include/asm/pgtable.h
patch
|
blob
|
history
diff --git
a/arch/s390/include/asm/pgtable.h
b/arch/s390/include/asm/pgtable.h
index b09c00b5cfa2e5455b6e11d3bed0dbc535b3d083..b59b44badae94d209a51c0d062d30656f4a39fcd 100644
(file)
--- a/
arch/s390/include/asm/pgtable.h
+++ b/
arch/s390/include/asm/pgtable.h
@@
-1144,10
+1144,9
@@
static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
pgste_t pgste;
pte_t pte;
- if (mm_has_pgste(mm)) {
+ if (
!full &&
mm_has_pgste(mm)) {
pgste = pgste_get_lock(ptep);
- if (!full)
- pgste = pgste_ipte_notify(mm, address, ptep, pgste);
+ pgste = pgste_ipte_notify(mm, address, ptep, pgste);
}
pte = *ptep;
@@
-1155,7
+1154,7
@@
static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
__ptep_ipte(address, ptep);
pte_val(*ptep) = _PAGE_INVALID;
- if (mm_has_pgste(mm)) {
+ if (
!full &&
mm_has_pgste(mm)) {
pgste = pgste_update_all(&pte, pgste);
pgste_set_unlock(ptep, pgste);
}