在 2020/11/11 上午3:50, Andrew Morton 写道: > On Tue, 10 Nov 2020 08:39:24 +0530 Souptick Joarder <jrdr.linux@xxxxxxxxx> wrote: > >> On Fri, Nov 6, 2020 at 4:55 PM Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> wrote: >>> >>> Otherwise it cause gcc warning: >>> ^~~~~~~~~~~~~~~ >>> ../mm/filemap.c:830:14: warning: no previous prototype for >>> ‘__add_to_page_cache_locked’ [-Wmissing-prototypes] >>> noinline int __add_to_page_cache_locked(struct page *page, >>> ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Is CONFIG_DEBUG_INFO_BTF enabled in your .config ? > > hm, yes. When the config enabled, compiling looks good untill pahole tool used to get BTF info, but I still failed on a right version pahole > 1.16. Sorry. > >>> >>> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> >>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> >>> Cc: linux-mm@xxxxxxxxx >>> Cc: linux-kernel@xxxxxxxxxxxxxxx >>> --- >>> mm/filemap.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/mm/filemap.c b/mm/filemap.c >>> index d90614f501da..249cf489f5df 100644 >>> --- a/mm/filemap.c >>> +++ b/mm/filemap.c >>> @@ -827,7 +827,7 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask) >>> } >>> EXPORT_SYMBOL_GPL(replace_page_cache_page); >>> >>> -noinline int __add_to_page_cache_locked(struct page *page, >>> +static noinline int __add_to_page_cache_locked(struct page *page, >>> struct address_space *mapping, >>> pgoff_t offset, gfp_t gfp, >>> void **shadowp) > > It's unclear to me whether BTF_ID() requires that the target symbol be > non-static. It doesn't actually reference the symbol: > > #define BTF_ID(prefix, name) \ > __BTF_ID(__ID(__BTF_ID__##prefix##__##name##__)) > The above usage make me thought BTF don't require the symbol, though the symbol still exist in vmlinux with 'static'. So any comments of this, Alexei? > Alexei, can you please comment? >