Messages in this thread | | | Date | Thu, 23 Oct 2014 12:19:48 +0200 | From | Martin Schwidefsky <> | Subject | Re: [PATCH v3 0/4] mm: new function to forbid zeropage mappings for a process |
| |
On Wed, 22 Oct 2014 13:09:26 +0200 Dominik Dingel <dingel@linux.vnet.ibm.com> wrote:
> s390 has the special notion of storage keys which are some sort of page flags > associated with physical pages and live outside of direct addressable memory. > These storage keys can be queried and changed with a special set of instructions. > The mentioned instructions behave quite nicely under virtualization, if there is: > - an invalid pte, then the instructions will work on memory in the host page table > - a valid pte, then the instructions will work with the real storage key > > Thanks to Martin with his software reference and dirty bit tracking, > the kernel does not issue any storage key instructions as now a > software based approach will be taken, on the other hand distributions > in the wild are currently using them. > > However, for virtualized guests we still have a problem with guest pages > mapped to zero pages and the kernel same page merging. > With each one multiple guest pages will point to the same physical page > and share the same storage key. > > Let's fix this by introducing a new function which s390 will define to > forbid new zero page mappings. If the guest issues a storage key related > instruction we flag the mm_struct, drop existing zero page mappings > and unmerge the guest memory. > > v2 -> v3: > - Clearing up patch description Patch 3/4 > - removing unnecessary flag in mmu_context (Paolo) > > v1 -> v2: > - Following Dave and Paolo suggestion removing the vma flag > > Dominik Dingel (4): > s390/mm: recfactor global pgste updates > mm: introduce mm_forbids_zeropage function > s390/mm: prevent and break zero page mappings in case of storage keys > s390/mm: disable KSM for storage key enabled pages > > arch/s390/include/asm/pgalloc.h | 2 - > arch/s390/include/asm/pgtable.h | 8 +- > arch/s390/kvm/kvm-s390.c | 2 +- > arch/s390/kvm/priv.c | 17 ++-- > arch/s390/mm/pgtable.c | 180 ++++++++++++++++++---------------------- > include/linux/mm.h | 4 + > mm/huge_memory.c | 2 +- > mm/memory.c | 2 +- > 8 files changed, 106 insertions(+), 111 deletions(-)
Patches look good to me and as nobody seems to disagree with the proposed solution I will add the code to the features branch of the s390 tree.
-- blue skies, Martin.
"Reality continues to ruin my life." - Calvin.
| |