include/trace/events/hugetlbfs.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
From: Xiaohui Zhu <zhuxiaohui.400@bytedance.com>
Anonymous huge page has no corresponding directory inode,
which cause a null pointer crash when access dir with the stack
trace_hugetlbfs_alloc_inode
hugetlbfs_get_inode
hugetlb_file_setup
ksys_mmap_pgoff
Signed-off-by: Xiaohui Zhu <zhuxiaohui.400@bytedance.com>
---
include/trace/events/hugetlbfs.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/trace/events/hugetlbfs.h b/include/trace/events/hugetlbfs.h
index 8331c904a9ba..5daa52053edc 100644
--- a/include/trace/events/hugetlbfs.h
+++ b/include/trace/events/hugetlbfs.h
@@ -23,7 +23,9 @@ TRACE_EVENT(hugetlbfs_alloc_inode,
TP_fast_assign(
__entry->dev = inode->i_sb->s_dev;
__entry->ino = inode->i_ino;
- __entry->dir = dir->i_ino;
+ __entry->dir = 0;
+ if (dir)
+ __entry->dir = dir->i_ino;
__entry->mode = mode;
),
--
2.41.0
On 2025/1/13 11:07, zhuxiaohui wrote: > From: Xiaohui Zhu <zhuxiaohui.400@bytedance.com> > > Anonymous huge page has no corresponding directory inode, > which cause a null pointer crash when access dir with the stack > > trace_hugetlbfs_alloc_inode > hugetlbfs_get_inode > hugetlb_file_setup > ksys_mmap_pgoff > > Signed-off-by: Xiaohui Zhu <zhuxiaohui.400@bytedance.com> > --- > include/trace/events/hugetlbfs.h | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/include/trace/events/hugetlbfs.h b/include/trace/events/hugetlbfs.h > index 8331c904a9ba..5daa52053edc 100644 > --- a/include/trace/events/hugetlbfs.h > +++ b/include/trace/events/hugetlbfs.h > @@ -23,7 +23,9 @@ TRACE_EVENT(hugetlbfs_alloc_inode, > TP_fast_assign( > __entry->dev = inode->i_sb->s_dev; > __entry->ino = inode->i_ino; > - __entry->dir = dir->i_ino; > + __entry->dir = 0; > + if (dir) > + __entry->dir = dir->i_ino; It has been fixed in [1] by Muchun. Thanks, Hongbo [1] https://lore.kernel.org/lkml/20250106033118.4640-1-songmuchun@bytedance.com/T/ > __entry->mode = mode; > ), >
Got it, thanks > From: "Hongbo Li"<lihongbo22@huawei.com> > Date: Mon, Jan 13, 2025, 11:29 > Subject: [External] Re: [PATCH] hugetlbfs: check dir in trace_hugetlbfs_alloc_inode > To: "zhuxiaohui"<zhuxiaohui400@gmail.com>, <muchun.song@linux.dev>, <rostedt@goodmis.org>, <mhiramat@kernel.org>, <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>, <linux-trace-kernel@vger.kernel.org> > Cc: "Xiaohui Zhu"<zhuxiaohui.400@bytedance.com> > On 2025/1/13 11:07, zhuxiaohui wrote: > > From: Xiaohui Zhu <zhuxiaohui.400@bytedance.com> > > > > Anonymous huge page has no corresponding directory inode, > > which cause a null pointer crash when access dir with the stack > > > > trace_hugetlbfs_alloc_inode > > hugetlbfs_get_inode > > hugetlb_file_setup > > ksys_mmap_pgoff > > > > Signed-off-by: Xiaohui Zhu <zhuxiaohui.400@bytedance.com> > > --- > > include/trace/events/hugetlbfs.h | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/include/trace/events/hugetlbfs.h b/include/trace/events/hugetlbfs.h > > index 8331c904a9ba..5daa52053edc 100644 > > --- a/include/trace/events/hugetlbfs.h > > +++ b/include/trace/events/hugetlbfs.h > > @@ -23,7 +23,9 @@ TRACE_EVENT(hugetlbfs_alloc_inode, > > TP_fast_assign( > > __entry->dev = inode->i_sb->s_dev; > > __entry->ino = inode->i_ino; > > - __entry->dir = dir->i_ino; > > + __entry->dir = 0; > > + if (dir) > > + __entry->dir = dir->i_ino; > It has been fixed in [1] by Muchun. > Thanks, > Hongbo > > [1] > https://lore.kernel.org/lkml/20250106033118.4640-1-songmuchun@bytedance.com/T/ > > __entry->mode = mode; > > ), > > >
© 2016 - 2025 Red Hat, Inc.