From: David Hildenbrand <hidden> Date: 2021-01-27 01:22:33
Let's simplify and unify free_highmem_page() and free_reserved_page().
Gave it a quick test in i386 QEMU with 4G of RAM - seems to work just fine.
David Hildenbrand (2):
video: fbdev: acornfb: remove free_unused_pages()
mm: simplify free_highmem_page() and free_reserved_page()
drivers/video/fbdev/acornfb.c | 34 --------------------------------
include/linux/highmem-internal.h | 5 -----
include/linux/mm.h | 16 ++-------------
mm/page_alloc.c | 11 -----------
4 files changed, 2 insertions(+), 64 deletions(-)
--
2.29.2
From: David Hildenbrand <hidden> Date: 2021-01-27 01:22:33
adjust_managed_page_count() as called by free_reserved_page() properly
handles pages in a highmem zone, so we can reuse it for
free_highmem_page().
We can now get rid of totalhigh_pages_inc() and simplify
free_reserved_page().
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Signed-off-by: David Hildenbrand <redacted>
---
include/linux/highmem-internal.h | 5 -----
include/linux/mm.h | 16 ++--------------
mm/page_alloc.c | 11 -----------
3 files changed, 2 insertions(+), 30 deletions(-)
@@ -2303,32 +2303,20 @@ extern void free_initmem(void);externunsignedlongfree_reserved_area(void*start,void*end,intpoison,constchar*s);-#ifdef CONFIG_HIGHMEM-/*-*Freeahighmempageintothebuddysystem,adjustingtotalhigh_pages-*andtotalram_pages.-*/-externvoidfree_highmem_page(structpage*page);-#endif-externvoidadjust_managed_page_count(structpage*page,longcount);externvoidmem_init_print_info(constchar*str);externvoidreserve_bootmem_region(phys_addr_tstart,phys_addr_tend);/* Free the reserved page into the buddy system, so it gets managed. */-staticinlinevoid__free_reserved_page(structpage*page)+staticinlinevoidfree_reserved_page(structpage*page){ClearPageReserved(page);init_page_count(page);__free_page(page);-}--staticinlinevoidfree_reserved_page(structpage*page)-{-__free_reserved_page(page);adjust_managed_page_count(page,1);}+#define free_highmem_page(page) free_reserved_page(page)staticinlinevoidmark_page_reserved(structpage*page){
From: David Hildenbrand <hidden> Date: 2021-01-27 01:22:33
This function is never used and it is one of the last remaining user of
__free_reserved_page(). Let's just drop it.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Sam Ravnborg <redacted>
Signed-off-by: David Hildenbrand <redacted>
---
drivers/video/fbdev/acornfb.c | 34 ----------------------------------
1 file changed, 34 deletions(-)
On Tue, Jan 26, 2021 at 11:54 PM David Hildenbrand [off-list ref] wrote:
This function is never used and it is one of the last remaining user of
__free_reserved_page(). Let's just drop it.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Sam Ravnborg <redacted>
Signed-off-by: David Hildenbrand <redacted>
Fixes: ffd29195ed720188 ("drivers/video/acornfb.c: remove dead code")
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
From: Oscar Salvador <osalvador@suse.de> Date: 2021-01-27 11:55:36
On Tue, Jan 26, 2021 at 07:21:13PM +0100, David Hildenbrand wrote:
adjust_managed_page_count() as called by free_reserved_page() properly
handles pages in a highmem zone, so we can reuse it for
free_highmem_page().
We can now get rid of totalhigh_pages_inc() and simplify
free_reserved_page().
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Signed-off-by: David Hildenbrand <redacted>
Should we place that under #ifdef CONFIG_HIGHMEM to make clear
that it is only used on that config?
Maybe the #ifdefery ugliness does not pay off.
--
Oscar Salvador
SUSE L3
From: Oscar Salvador <osalvador@suse.de> Date: 2021-01-27 11:59:54
On Tue, Jan 26, 2021 at 07:21:12PM +0100, David Hildenbrand wrote:
This function is never used and it is one of the last remaining user of
__free_reserved_page(). Let's just drop it.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Sam Ravnborg <redacted>
Signed-off-by: David Hildenbrand <redacted>
From: David Hildenbrand <hidden> Date: 2021-01-27 12:29:41
On 27.01.21 12:51, Oscar Salvador wrote:
On Tue, Jan 26, 2021 at 07:21:13PM +0100, David Hildenbrand wrote:
quoted
adjust_managed_page_count() as called by free_reserved_page() properly
handles pages in a highmem zone, so we can reuse it for
free_highmem_page().
We can now get rid of totalhigh_pages_inc() and simplify
free_reserved_page().
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Signed-off-by: David Hildenbrand <redacted>
This function is never used and it is one of the last remaining user of
__free_reserved_page(). Let's just drop it.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Sam Ravnborg <redacted>
Signed-off-by: David Hildenbrand <redacted>
There is no other reference for free_unused_pages() in the tree.
Reviewed-by: Anshuman Khandual <redacted>
adjust_managed_page_count() as called by free_reserved_page() properly
handles pages in a highmem zone, so we can reuse it for
free_highmem_page().
We can now get rid of totalhigh_pages_inc() and simplify
free_reserved_page().
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <redacted>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <redacted>
Signed-off-by: David Hildenbrand <redacted>
@@ -2303,32 +2303,20 @@ extern void free_initmem(void);externunsignedlongfree_reserved_area(void*start,void*end,intpoison,constchar*s);-#ifdef CONFIG_HIGHMEM-/*-*Freeahighmempageintothebuddysystem,adjustingtotalhigh_pages-*andtotalram_pages.-*/-externvoidfree_highmem_page(structpage*page);-#endif-externvoidadjust_managed_page_count(structpage*page,longcount);externvoidmem_init_print_info(constchar*str);externvoidreserve_bootmem_region(phys_addr_tstart,phys_addr_tend);/* Free the reserved page into the buddy system, so it gets managed. */-staticinlinevoid__free_reserved_page(structpage*page)+staticinlinevoidfree_reserved_page(structpage*page){ClearPageReserved(page);init_page_count(page);__free_page(page);-}--staticinlinevoidfree_reserved_page(structpage*page)-{-__free_reserved_page(page);adjust_managed_page_count(page,1);}+#define free_highmem_page(page) free_reserved_page(page)staticinlinevoidmark_page_reserved(structpage*page){