diff mbox series

[RFC,6/9] mm: export-GPL get_pageblock_migratetype

Message ID 20200409193543.18115-7-mathieu.desnoyers@efficios.com (mailing list archive)
State New, archived
Headers show
Series None | expand

Commit Message

Mathieu Desnoyers April 9, 2020, 7:35 p.m. UTC
The macro include/linux/mmzone.h:get_pageblock_migratetype() uses
the symbol get_pfnblock_flags_mask, which is not exported. That macro is
used within the kmem and page_ref trace events to trace the migrate type
of the target page.

Exporting this symbol to GPL modules allows GPL kernel tracers to be
implemented as modules.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
---
 mm/page_alloc.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Christoph Hellwig April 12, 2020, 8:14 a.m. UTC | #1
On Thu, Apr 09, 2020 at 03:35:40PM -0400, Mathieu Desnoyers wrote:
> The macro include/linux/mmzone.h:get_pageblock_migratetype() uses
> the symbol get_pfnblock_flags_mask, which is not exported. That macro is
> used within the kmem and page_ref trace events to trace the migrate type
> of the target page.
> 
> Exporting this symbol to GPL modules allows GPL kernel tracers to be
> implemented as modules.

Which might make some sense if we had such intree modules (and then even
some as we could have higher level functions).  Without that is
obviously is a no-go.
diff mbox series

Patch

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 114c56c3685d..390febb028a0 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -501,6 +501,7 @@  unsigned long get_pfnblock_flags_mask(struct page *page, unsigned long pfn,
 {
 	return __get_pfnblock_flags_mask(page, pfn, end_bitidx, mask);
 }
+EXPORT_SYMBOL_GPL(get_pfnblock_flags_mask);
 
 static __always_inline int get_pfnblock_migratetype(struct page *page, unsigned long pfn)
 {