Message ID | 20250113030702.58502-1-zhuxiaohui.400@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | hugetlbfs: check dir in trace_hugetlbfs_alloc_inode | expand |
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; > > ), > > >
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; ),