[Devel] [PATCH RHEL7 COMMIT] rh/mm: PTE isn't dirty when _PAGE_SOFT_DIRTY bit set

Konstantin Khorenko khorenko at virtuozzo.com
Thu Jan 14 04:58:01 PST 2016


The commit is pushed to "branch-rh7-3.10.0-229.7.2.vz7.9.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.9.20
------>
commit 47299868b3655a16f5e30553050319a5d2df7a19
Author: Dmitry Safonov <dsafonov at odin.com>
Date:   Thu Jan 14 16:58:01 2016 +0400

    rh/mm: PTE isn't dirty when _PAGE_SOFT_DIRTY bit set
    
    PTE is dirty only when _PAGE_DIRTY bit is set, not _PAGE_SOFT_DIRTY.
    This misbehavior was introduced on importing RHEL7 kernel-3.10.0-229.7.2.el7
    So, it seems to be the reason of twice writeback of mapped files &
    similar issues.
    
    https://jira.sw.ru/browse/PSBM-42094
    
    khorenko@: RedHat has implemented own memory dirty page tracker which
    intersects with vanilla's soft-dirty engine (which was implemented by us and
    which we use). And rip RedHat's engine off, but forgot about this hunk
    => this patch fixes
    commit d55d4b7d858f83e763bc9803ffcfe7f61c69ce63
    ("rh/mm: Drop off Live Kernel Self Migration (TRACK_DIRTY_PAGES)")
    
    Signed-off-by: Dmitry Safonov <dmsafonov at virtuozzo.com>
    Reviewed-by: Vladimir Davydov <vdavydov at virtuozzo.com>
---
 arch/x86/include/asm/pgtable.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index f909164..da8b030 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -90,7 +90,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
  */
 static inline int pte_dirty(pte_t pte)
 {
-	return pte_flags(pte) & (_PAGE_DIRTY | _PAGE_SOFT_DIRTY);
+	return pte_flags(pte) & _PAGE_DIRTY;
 }
 
 static inline int pte_young(pte_t pte)


More information about the Devel mailing list