diff options
author | Janosch Frank <frankja@linux.ibm.com> | 2018-07-17 14:21:22 +0200 |
---|---|---|
committer | Janosch Frank <frankja@linux.ibm.com> | 2018-07-30 12:20:18 +0200 |
commit | 0959e168678d2d95648317e1e5e46bcb358272eb (patch) | |
tree | 384aaaf4b65878390acb5fd2cf2cc8d7fd68cc6c /arch/s390/include/asm/gmap.h | |
parent | s390/mm: Add gmap pmd invalidation and clearing (diff) | |
download | linux-0959e168678d2d95648317e1e5e46bcb358272eb.tar.xz linux-0959e168678d2d95648317e1e5e46bcb358272eb.zip |
s390/mm: Add huge page dirty sync support
To do dirty loging with huge pages, we protect huge pmds in the
gmap. When they are written to, we unprotect them and mark them dirty.
We introduce the function gmap_test_and_clear_dirty_pmd which handles
dirty sync for huge pages.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Diffstat (limited to 'arch/s390/include/asm/gmap.h')
-rw-r--r-- | arch/s390/include/asm/gmap.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/include/asm/gmap.h b/arch/s390/include/asm/gmap.h index 276268b48aff..fcbd638fb9f4 100644 --- a/arch/s390/include/asm/gmap.h +++ b/arch/s390/include/asm/gmap.h @@ -15,6 +15,7 @@ /* Status bits only for huge segment entries */ #define _SEGMENT_ENTRY_GMAP_IN 0x8000 /* invalidation notify bit */ +#define _SEGMENT_ENTRY_GMAP_UC 0x4000 /* dirty (migration) */ /** * struct gmap_struct - guest address space @@ -139,4 +140,6 @@ void gmap_pte_notify(struct mm_struct *, unsigned long addr, pte_t *, int gmap_mprotect_notify(struct gmap *, unsigned long start, unsigned long len, int prot); +void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4], + unsigned long gaddr, unsigned long vmaddr); #endif /* _ASM_S390_GMAP_H */ |