Re: [DTrace-devel] [PATCH 4/4] test: Do not depend on ext4

Kris Van Hees <[email protected]>
Newsgroups dev.linux.lists.dtrace
Message-ID <[email protected]>
On Sun, Sep 14, 2025 at 12:18:20PM +0100, Nick Alcock via DTrace-devel wrote:
> On 30 Oct 2024, Eugene Loh stated:
> 
> > E.g.,
> >     $ uname -r
> >     5.15.0-205.149.5.1.el9uek.aarch64
> >     $ sudo grep ext4_dir_operations /proc/kallmodsyms
> >      ffffc45a59d9ee88 100 D ext4_dir_operations
> >      $ sudo awk '/ext4/ { print NF }' /proc/kallmodsyms | uniq -c
> >        2342 4
> >     $ sudo grep -w ext4 /proc/kallmodsyms
> 
> Something is presumably wrong there -- ext4 should always be considered
> a built-in module if it's built in, that's what built-in modules *are*,
> things that might be being built as modules but aren't.
> 
> i.e. this test is working as intended and pointing out a real bug :)
> whether it's one we care about is another matter.
> 
> > So, lots of ext4 symbols (including ext4_dir_operations) but none of them are [ext4].  Bug in... kallmodsyms?
> >
> > On 10/25/24 17:16, Kris Van Hees wrote:
> >> I am not too sure about this patch...  We are not using kallmodsyms anymore
> >> for newer kernels, and on older kernels that symbol certainly be listed as
> >> [ext4].  So, if ext4_dir_operations *is* in the ext4 module code (compiled in
> >> or loadable), then the proper ref to it would be ext4`ext4_dir_operations.
> >> So the test should be able to use that - if not, that seems like a bug rather
> >> than something to change in the test?
> 
> Yes.

OK, I will mark it as NAK so it gets removed from my tracking.

> >> On Fri, Oct 04, 2024 at 12:43:55AM -0400, [email protected] wrote:
> >>> From: Eugene Loh <[email protected]>
> >>>
> >>> It is possible that there is no ext4 module, whether built-in or otherwise,
> >>> even if its symbols are present.  E.g.,
> 
> That wasn't true in the kallmodsyms world I wrote this for.
> 
> >>>      # grep ext4_dir_operations /proc/kallmodsyms
> >>>      ffffc45a59d9ee88 100 D ext4_dir_operations
> >>>      # grep -w ext4 /proc/kallmodsyms
> >>>      #
> >>>
> >>> Meanwhile, in
> >>>      ab883bae "tests, io, scalars: use kallsyms instead of kallmodsyms where possible"
> >>> we read:
> >>>      scalars/tst.misc.x needs adjusting to check for the presence of the actual
> >>>      symbols we are looking up, since the modules might well be built-in, and
> >>>      thus not show up in /proc/kallsyms.
> >>>
> >>> With that patch, in test/unittest/scalars/tst.misc.x, we check:
> >>>     -if ! $(grep -qw ext4 /proc/kallmodsyms); then
> >>>     +if ! grep -qw ext4_dir_operations /proc/kallsyms; then
> >>>          exit 1
> >>>      fi
> >>>
> >>> So it is possible for us to find
> >>>          `ext4_dir_operations
> >>> but not
> >>>      ext4`ext4_dir_operations
> >>>
> >>> Change the .d script to look simply for `ext4_dir_operations.
> >>>
> >>> Signed-off-by: Eugene Loh <[email protected]>
> >>> ---
> >>>   test/unittest/scalars/tst.misc.d | 2 +-
> >>>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/test/unittest/scalars/tst.misc.d b/test/unittest/scalars/tst.misc.d
> >>> index 60edab45e..6a5f4ae2e 100644
> >>> --- a/test/unittest/scalars/tst.misc.d
> >>> +++ b/test/unittest/scalars/tst.misc.d
> >>> @@ -20,7 +20,7 @@
> >>>   BEGIN
> >>>   {
> >>>   	printf("\nr_cpu_ids = 0x%x\n", `nr_cpu_ids);
> >>> -	printf("ext4`ext4_dir_operations = %p\n", &ext4`ext4_dir_operations);
> >>> +	printf("ext4`ext4_dir_operations = %p\n", &`ext4_dir_operations);
> >>>   	printf("isofs`isofs_dir_operations = %p\n", &isofs`isofs_dir_operations);
> >>>   	printf("vmlinux`major_names = %p\n", &vmlinux`major_names);
> >>>   	x = 123;
> >>> -- 2.43.5
> >>>
> 
> -- 
> NULL && (void)
> 
> _______________________________________________
> DTrace-devel mailing list
> [email protected]
> https://oss.oracle.com/mailman/listinfo/dtrace-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.