Skip to content
  • Andrey Ryabinin's avatar
    x86/mm/kasan: Don't use vmemmap_populate() to initialize shadow · d455b71e
    Andrey Ryabinin authored
    commit 2aeb0736 upstream.
    
    [ Note, this is a Git cherry-pick of the following commit:
    
        d17a1d97: ("x86/mm/kasan: don't use vmemmap_populate() to initialize shadow")
    
      ... for easier x86 PTI code testing and back-porting. ]
    
    The KASAN shadow is currently mapped using vmemmap_populate() since that
    provides a semi-convenient way to map pages into init_top_pgt.  However,
    since that no longer zeroes the mapped pages, it is not suitable for
    KASAN, which requires zeroed shadow memory.
    
    Add kasan_populate_shadow() interface and use it instead of
    vmemmap_populate().  Besides, this allows us to take advantage of
    gigantic pages and use them to populate the shadow, which should save us
    some memory wasted on page tables and reduce TLB pressure.
    
    Link: http://lkml.kernel.org/r/20171103185147.2688-2-pasha.tatashin@oracle.com
    
    
    Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
    Signed-off-by: default avatarPavel Tatashin <pasha.tatashin@oracle.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Steven Sistare <steven.sistare@oracle.com>
    Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
    Cc: Bob Picco <bob.picco@oracle.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d455b71e