[DTrace-devel] [PATCH] test: skip when /proc/kallmodsyms is not present

Kris Van Hees kris.van.hees at oracle.com
Mon Feb 9 19:04:52 UTC 2026


On Mon, Feb 09, 2026 at 01:55:03PM -0500, Eugene Loh wrote:
> I'm rusty on this stuff, but maybe you can help me out.  What happens with
> the test if kallmodsyms is not there?  The test does not directly rely on
> that file.  The test simply makes libdtrace calls, and dt_modsym_update()
> can fail over to kallsyms if kallmodsyms is not present.

The .x file depends on being able to read kallmodsyms to determine whether
the kernel fix that the test depends on is in the running kernel, which
cannot be when kallmodsyms isn't even in the kernel.

Without kallmodsyms, this test becomes a verifier for the kallsyms data that
the kernel provides, and then only in terms of loaded modules, which is pretty
much guaranteed to be correct or the kernel modules would be conflicting and
cause horrible crashes of the kernel.

With modules.builtin.ranges, the association of an address with a builtin
module is done by performing a lookup of the symbol address in the data that
modules.builtin.ranges provides.  If that has overlapping ranges, then this
is a kernel bug, and this test wouldn't be able to detect it anyway.

So, if kallmodsyms is not present, the test is useless.

> On 2/9/26 13:34, Kris Van Hees wrote:
> > Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> > ---
> >   test/unittest/consumer/tst.merge_ranges_bug25767469.x | 6 +++++-
> >   1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/test/unittest/consumer/tst.merge_ranges_bug25767469.x b/test/unittest/consumer/tst.merge_ranges_bug25767469.x
> > index 7e265f2f..a92690ad 100755
> > --- a/test/unittest/consumer/tst.merge_ranges_bug25767469.x
> > +++ b/test/unittest/consumer/tst.merge_ranges_bug25767469.x
> > @@ -1,10 +1,14 @@
> >   #!/bin/bash
> >   #
> >   # Oracle Linux DTrace.
> > -# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
> > +# Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved.
> >   # Licensed under the Universal Permissive License v 1.0 as shown at
> >   # http://oss.oracle.com/licenses/upl.
> > +# If /proc/kallmodsyms does not exist, there is nothing to test.
> > +
> > +[[ -r /proc/kallmodsyms ]] || exit 2
> > +
> >   # The test depends on a kernel fix to report kernel (and built-in-module)
> >   # symbol sizes correctly in /proc/kallmodsyms.  An easy check is to count
> >   # how many kernel and built-in-module symbols (that is, symbols that appear



More information about the DTrace-devel mailing list