mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
mm, thp: remove infrastructure for handling splitting PMDs
With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Tested-by: Sasha Levin <sasha.levin@oracle.com> Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Jerome Marchand <jmarchan@redhat.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Hugh Dickins <hughd@google.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Rik van Riel <riel@redhat.com> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Steve Capper <steve.capper@linaro.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Cc: Christoph Lameter <cl@linux.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
1f19617d77
commit
4b471e8898
13 changed files with 41 additions and 183 deletions
|
@ -25,7 +25,7 @@ extern int zap_huge_pmd(struct mmu_gather *tlb,
|
|||
extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
|
||||
unsigned long addr, unsigned long end,
|
||||
unsigned char *vec);
|
||||
extern int move_huge_pmd(struct vm_area_struct *vma,
|
||||
extern bool move_huge_pmd(struct vm_area_struct *vma,
|
||||
struct vm_area_struct *new_vma,
|
||||
unsigned long old_addr,
|
||||
unsigned long new_addr, unsigned long old_end,
|
||||
|
@ -48,15 +48,9 @@ enum transparent_hugepage_flag {
|
|||
#endif
|
||||
};
|
||||
|
||||
enum page_check_address_pmd_flag {
|
||||
PAGE_CHECK_ADDRESS_PMD_FLAG,
|
||||
PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG,
|
||||
PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG,
|
||||
};
|
||||
extern pmd_t *page_check_address_pmd(struct page *page,
|
||||
struct mm_struct *mm,
|
||||
unsigned long address,
|
||||
enum page_check_address_pmd_flag flag,
|
||||
spinlock_t **ptl);
|
||||
|
||||
#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT)
|
||||
|
@ -100,7 +94,6 @@ extern unsigned long transparent_hugepage_flags;
|
|||
#define split_huge_page(page) BUILD_BUG()
|
||||
#define split_huge_pmd(__vma, __pmd, __address) BUILD_BUG()
|
||||
|
||||
#define wait_split_huge_page(__anon_vma, __pmd) BUILD_BUG()
|
||||
#if HPAGE_PMD_ORDER >= MAX_ORDER
|
||||
#error "hugepages can't be allocated by the buddy allocator"
|
||||
#endif
|
||||
|
@ -110,17 +103,17 @@ extern void vma_adjust_trans_huge(struct vm_area_struct *vma,
|
|||
unsigned long start,
|
||||
unsigned long end,
|
||||
long adjust_next);
|
||||
extern int __pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
extern bool __pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
spinlock_t **ptl);
|
||||
/* mmap_sem must be held on entry */
|
||||
static inline int pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
static inline bool pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
spinlock_t **ptl)
|
||||
{
|
||||
VM_BUG_ON_VMA(!rwsem_is_locked(&vma->vm_mm->mmap_sem), vma);
|
||||
if (pmd_trans_huge(*pmd))
|
||||
return __pmd_trans_huge_lock(pmd, vma, ptl);
|
||||
else
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
static inline int hpage_nr_pages(struct page *page)
|
||||
{
|
||||
|
@ -165,8 +158,6 @@ static inline int split_huge_page(struct page *page)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
#define wait_split_huge_page(__anon_vma, __pmd) \
|
||||
do { } while (0)
|
||||
#define split_huge_pmd(__vma, __pmd, __address) \
|
||||
do { } while (0)
|
||||
static inline int hugepage_madvise(struct vm_area_struct *vma,
|
||||
|
@ -181,10 +172,10 @@ static inline void vma_adjust_trans_huge(struct vm_area_struct *vma,
|
|||
long adjust_next)
|
||||
{
|
||||
}
|
||||
static inline int pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
static inline bool pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
|
||||
spinlock_t **ptl)
|
||||
{
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue