Loading include/linux/page_owner.h +5 −7 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ extern struct page_ext_operations page_owner_ops; extern void __reset_page_owner(struct page *page, unsigned int order); extern void __set_page_owner(struct page *page, unsigned int order, gfp_t gfp_mask); extern gfp_t __get_page_owner_gfp(struct page *page); extern void __split_page_owner(struct page *page, unsigned int order); extern void __copy_page_owner(struct page *oldpage, struct page *newpage); extern void __set_page_owner_migrate_reason(struct page *page, int reason); extern void __dump_page_owner(struct page *page); Loading @@ -28,12 +28,10 @@ static inline void set_page_owner(struct page *page, __set_page_owner(page, order, gfp_mask); } static inline gfp_t get_page_owner_gfp(struct page *page) static inline void split_page_owner(struct page *page, unsigned int order) { if (static_branch_unlikely(&page_owner_inited)) return __get_page_owner_gfp(page); else return 0; __split_page_owner(page, order); } static inline void copy_page_owner(struct page *oldpage, struct page *newpage) { Loading @@ -58,9 +56,9 @@ static inline void set_page_owner(struct page *page, unsigned int order, gfp_t gfp_mask) { } static inline gfp_t get_page_owner_gfp(struct page *page) static inline void split_page_owner(struct page *page, unsigned int order) { return 0; } static inline void copy_page_owner(struct page *oldpage, struct page *newpage) { Loading mm/page_alloc.c +2 −6 Original line number Diff line number Diff line Loading @@ -2232,7 +2232,6 @@ void free_hot_cold_page_list(struct list_head *list, bool cold) void split_page(struct page *page, unsigned int order) { int i; gfp_t gfp_mask; VM_BUG_ON_PAGE(PageCompound(page), page); VM_BUG_ON_PAGE(!page_count(page), page); Loading @@ -2246,12 +2245,9 @@ void split_page(struct page *page, unsigned int order) split_page(virt_to_page(page[0].shadow), order); #endif gfp_mask = get_page_owner_gfp(page); set_page_owner(page, 0, gfp_mask); for (i = 1; i < (1 << order); i++) { for (i = 1; i < (1 << order); i++) set_page_refcounted(page + i); set_page_owner(page + i, 0, gfp_mask); } split_page_owner(page, order); } EXPORT_SYMBOL_GPL(split_page); Loading mm/page_owner.c +5 −2 Original line number Diff line number Diff line Loading @@ -90,11 +90,14 @@ void __set_page_owner_migrate_reason(struct page *page, int reason) page_ext->last_migrate_reason = reason; } gfp_t __get_page_owner_gfp(struct page *page) void __split_page_owner(struct page *page, unsigned int order) { int i; struct page_ext *page_ext = lookup_page_ext(page); return page_ext->gfp_mask; page_ext->order = 0; for (i = 1; i < (1 << order); i++) __copy_page_owner(page, page + i); } void __copy_page_owner(struct page *oldpage, struct page *newpage) Loading Loading
include/linux/page_owner.h +5 −7 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ extern struct page_ext_operations page_owner_ops; extern void __reset_page_owner(struct page *page, unsigned int order); extern void __set_page_owner(struct page *page, unsigned int order, gfp_t gfp_mask); extern gfp_t __get_page_owner_gfp(struct page *page); extern void __split_page_owner(struct page *page, unsigned int order); extern void __copy_page_owner(struct page *oldpage, struct page *newpage); extern void __set_page_owner_migrate_reason(struct page *page, int reason); extern void __dump_page_owner(struct page *page); Loading @@ -28,12 +28,10 @@ static inline void set_page_owner(struct page *page, __set_page_owner(page, order, gfp_mask); } static inline gfp_t get_page_owner_gfp(struct page *page) static inline void split_page_owner(struct page *page, unsigned int order) { if (static_branch_unlikely(&page_owner_inited)) return __get_page_owner_gfp(page); else return 0; __split_page_owner(page, order); } static inline void copy_page_owner(struct page *oldpage, struct page *newpage) { Loading @@ -58,9 +56,9 @@ static inline void set_page_owner(struct page *page, unsigned int order, gfp_t gfp_mask) { } static inline gfp_t get_page_owner_gfp(struct page *page) static inline void split_page_owner(struct page *page, unsigned int order) { return 0; } static inline void copy_page_owner(struct page *oldpage, struct page *newpage) { Loading
mm/page_alloc.c +2 −6 Original line number Diff line number Diff line Loading @@ -2232,7 +2232,6 @@ void free_hot_cold_page_list(struct list_head *list, bool cold) void split_page(struct page *page, unsigned int order) { int i; gfp_t gfp_mask; VM_BUG_ON_PAGE(PageCompound(page), page); VM_BUG_ON_PAGE(!page_count(page), page); Loading @@ -2246,12 +2245,9 @@ void split_page(struct page *page, unsigned int order) split_page(virt_to_page(page[0].shadow), order); #endif gfp_mask = get_page_owner_gfp(page); set_page_owner(page, 0, gfp_mask); for (i = 1; i < (1 << order); i++) { for (i = 1; i < (1 << order); i++) set_page_refcounted(page + i); set_page_owner(page + i, 0, gfp_mask); } split_page_owner(page, order); } EXPORT_SYMBOL_GPL(split_page); Loading
mm/page_owner.c +5 −2 Original line number Diff line number Diff line Loading @@ -90,11 +90,14 @@ void __set_page_owner_migrate_reason(struct page *page, int reason) page_ext->last_migrate_reason = reason; } gfp_t __get_page_owner_gfp(struct page *page) void __split_page_owner(struct page *page, unsigned int order) { int i; struct page_ext *page_ext = lookup_page_ext(page); return page_ext->gfp_mask; page_ext->order = 0; for (i = 1; i < (1 << order); i++) __copy_page_owner(page, page + i); } void __copy_page_owner(struct page *oldpage, struct page *newpage) Loading