Linux DTrace development list
 help / color / mirror / Atom feed
* [PATCH v2] test: fix another use of a kernel variable
@ 2024-08-02 20:38 Kris Van Hees
  2024-08-02 21:46 ` Eugene Loh
  0 siblings, 1 reply; 3+ messages in thread
From: Kris Van Hees @ 2024-08-02 20:38 UTC (permalink / raw)
  To: dtrace, dtrace-devel

Yet another case where lack datatype information for kernel variable
(i.e. lack of CTF, and BTF does not provide it) requires an explicit
use of the &-operator.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
---
 test/unittest/options/err.D_ASRELO.kdefs.d | 2 +-
 test/unittest/options/tst.knodefs.sh       | 2 +-
 test/unittest/options/tst.linkmode.r       | 2 +-
 test/unittest/options/tst.linkmode.sh      | 4 ++--
 test/unittest/tracemem/tst.tracemem.d      | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/test/unittest/options/err.D_ASRELO.kdefs.d b/test/unittest/options/err.D_ASRELO.kdefs.d
index 0a42fc6e..06bfe24e 100644
--- a/test/unittest/options/err.D_ASRELO.kdefs.d
+++ b/test/unittest/options/err.D_ASRELO.kdefs.d
@@ -14,6 +14,6 @@
 /* @@runtest-opts: -xerrtags -xlinkmode=dynamic -xknodefs -xkdefs */
 
 BEGIN {
-	trace((string)`linux_banner);
+	trace((string)&`linux_banner);
 	exit(0);
 }
diff --git a/test/unittest/options/tst.knodefs.sh b/test/unittest/options/tst.knodefs.sh
index 532d7eca..da65c49f 100755
--- a/test/unittest/options/tst.knodefs.sh
+++ b/test/unittest/options/tst.knodefs.sh
@@ -9,7 +9,7 @@
 dtrace=$1
 
 $dtrace $dt_flags -xlinkmode=dynamic -xknodefs \
-	-Sn 'BEGIN { trace((string)`linux_banner); exit(0); }' 2>&1 | \
+	-Sn 'BEGIN { trace((string)&`linux_banner); exit(0); }' 2>&1 | \
 	awk '/^KREL/ {
 		print;
 		while (getline == 1) {
diff --git a/test/unittest/options/tst.linkmode.r b/test/unittest/options/tst.linkmode.r
index 4b453f56..acbf8025 100644
--- a/test/unittest/options/tst.linkmode.r
+++ b/test/unittest/options/tst.linkmode.r
@@ -14,4 +14,4 @@ Linux version
 
 -- @@stderr --
 dtrace: failed to set -x linkmode: Invalid value for specified option
-dtrace: invalid probe specifier BEGIN { trace((string)`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
+dtrace: invalid probe specifier BEGIN { trace((string)&`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
diff --git a/test/unittest/options/tst.linkmode.sh b/test/unittest/options/tst.linkmode.sh
index 4e28f8bd..07045fd5 100755
--- a/test/unittest/options/tst.linkmode.sh
+++ b/test/unittest/options/tst.linkmode.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2023, 2024, 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.
 #
@@ -12,7 +12,7 @@ dtrace=$1
 
 function mytest() {
 	echo try $1
-	$dtrace $1 -qn 'BEGIN { trace((string)`linux_banner); exit(0); }' | cut -c-14
+	$dtrace $1 -qn 'BEGIN { trace((string)&`linux_banner); exit(0); }' | cut -c-14
 }
 
 # Test different link modes.
diff --git a/test/unittest/tracemem/tst.tracemem.d b/test/unittest/tracemem/tst.tracemem.d
index 716b119f..fa838454 100644
--- a/test/unittest/tracemem/tst.tracemem.d
+++ b/test/unittest/tracemem/tst.tracemem.d
@@ -14,7 +14,7 @@
 #pragma D option quiet
 
 BEGIN {
-	p = (char *)`linux_banner;	/* first 14 chars are "Linux version " */
+	p = (char *)&`linux_banner;	/* first 14 chars are "Linux version " */
 
 	/* try tracemem() with various sizes */
 
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] test: fix another use of a kernel variable
  2024-08-02 20:38 [PATCH v2] test: fix another use of a kernel variable Kris Van Hees
@ 2024-08-02 21:46 ` Eugene Loh
  2024-08-02 22:08   ` Kris Van Hees
  0 siblings, 1 reply; 3+ messages in thread
From: Eugene Loh @ 2024-08-02 21:46 UTC (permalink / raw)
  To: Kris Van Hees, dtrace, dtrace-devel

Reviewed-by: Eugene Loh <eugene.loh@oracle.com>

Not sure if you want to change the subject line to something more 
grammatically correct or more specific.  E.g.,

         test: fix other uses of kernel variable "linux_banner"

On 8/2/24 16:38, Kris Van Hees wrote:
> Yet another case where lack datatype information for kernel variable

s/another case/other cases/
s/lack/lack of/

And though I know you don't intend to be exhaustive with this patch and 
though I don't understand the underlying issue well, what about

     test/unittest/io/check_io_probe_args.sh
         printf("BEGIN { printf(\"%%d %%s\\n\", %s, 
stringof(`major_names[%s % 255]->name)); }\n",

     test/unittest/printf/tst.str.d
         printf("command line = %s", stringof(vmlinux`saved_command_line));

> (i.e. lack of CTF, and BTF does not provide it) requires an explicit
> use of the &-operator.
>
> Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
> ---
>   test/unittest/options/err.D_ASRELO.kdefs.d | 2 +-
>   test/unittest/options/tst.knodefs.sh       | 2 +-
>   test/unittest/options/tst.linkmode.r       | 2 +-
>   test/unittest/options/tst.linkmode.sh      | 4 ++--
>   test/unittest/tracemem/tst.tracemem.d      | 2 +-
>   5 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/test/unittest/options/err.D_ASRELO.kdefs.d b/test/unittest/options/err.D_ASRELO.kdefs.d
> index 0a42fc6e..06bfe24e 100644
> --- a/test/unittest/options/err.D_ASRELO.kdefs.d
> +++ b/test/unittest/options/err.D_ASRELO.kdefs.d
> @@ -14,6 +14,6 @@
>   /* @@runtest-opts: -xerrtags -xlinkmode=dynamic -xknodefs -xkdefs */
>   
>   BEGIN {
> -	trace((string)`linux_banner);
> +	trace((string)&`linux_banner);
>   	exit(0);
>   }
> diff --git a/test/unittest/options/tst.knodefs.sh b/test/unittest/options/tst.knodefs.sh
> index 532d7eca..da65c49f 100755
> --- a/test/unittest/options/tst.knodefs.sh
> +++ b/test/unittest/options/tst.knodefs.sh
> @@ -9,7 +9,7 @@
>   dtrace=$1
>   
>   $dtrace $dt_flags -xlinkmode=dynamic -xknodefs \
> -	-Sn 'BEGIN { trace((string)`linux_banner); exit(0); }' 2>&1 | \
> +	-Sn 'BEGIN { trace((string)&`linux_banner); exit(0); }' 2>&1 | \
>   	awk '/^KREL/ {
>   		print;
>   		while (getline == 1) {
> diff --git a/test/unittest/options/tst.linkmode.r b/test/unittest/options/tst.linkmode.r
> index 4b453f56..acbf8025 100644
> --- a/test/unittest/options/tst.linkmode.r
> +++ b/test/unittest/options/tst.linkmode.r
> @@ -14,4 +14,4 @@ Linux version
>   
>   -- @@stderr --
>   dtrace: failed to set -x linkmode: Invalid value for specified option
> -dtrace: invalid probe specifier BEGIN { trace((string)`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
> +dtrace: invalid probe specifier BEGIN { trace((string)&`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
> diff --git a/test/unittest/options/tst.linkmode.sh b/test/unittest/options/tst.linkmode.sh
> index 4e28f8bd..07045fd5 100755
> --- a/test/unittest/options/tst.linkmode.sh
> +++ b/test/unittest/options/tst.linkmode.sh
> @@ -1,7 +1,7 @@
>   #!/bin/bash
>   #
>   # Oracle Linux DTrace.
> -# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> +# Copyright (c) 2023, 2024, 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.
>   #
> @@ -12,7 +12,7 @@ dtrace=$1
>   
>   function mytest() {
>   	echo try $1
> -	$dtrace $1 -qn 'BEGIN { trace((string)`linux_banner); exit(0); }' | cut -c-14
> +	$dtrace $1 -qn 'BEGIN { trace((string)&`linux_banner); exit(0); }' | cut -c-14
>   }
>   
>   # Test different link modes.
> diff --git a/test/unittest/tracemem/tst.tracemem.d b/test/unittest/tracemem/tst.tracemem.d
> index 716b119f..fa838454 100644
> --- a/test/unittest/tracemem/tst.tracemem.d
> +++ b/test/unittest/tracemem/tst.tracemem.d
> @@ -14,7 +14,7 @@
>   #pragma D option quiet
>   
>   BEGIN {
> -	p = (char *)`linux_banner;	/* first 14 chars are "Linux version " */
> +	p = (char *)&`linux_banner;	/* first 14 chars are "Linux version " */
>   
>   	/* try tracemem() with various sizes */
>   

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] test: fix another use of a kernel variable
  2024-08-02 21:46 ` Eugene Loh
@ 2024-08-02 22:08   ` Kris Van Hees
  0 siblings, 0 replies; 3+ messages in thread
From: Kris Van Hees @ 2024-08-02 22:08 UTC (permalink / raw)
  To: Eugene Loh; +Cc: Kris Van Hees, dtrace, dtrace-devel

On Fri, Aug 02, 2024 at 05:46:09PM -0400, Eugene Loh wrote:
> Reviewed-by: Eugene Loh <eugene.loh@oracle.com>
> 
> Not sure if you want to change the subject line to something more
> grammatically correct or more specific.  E.g.,
> 
>         test: fix other uses of kernel variable "linux_banner"

I'll fix the subject line.

> On 8/2/24 16:38, Kris Van Hees wrote:
> > Yet another case where lack datatype information for kernel variable
> 
> s/another case/other cases/
> s/lack/lack of/
> 
> And though I know you don't intend to be exhaustive with this patch and
> though I don't understand the underlying issue well, what about
> 
>     test/unittest/io/check_io_probe_args.sh
>         printf("BEGIN { printf(\"%%d %%s\\n\", %s, stringof(`major_names[%s
> % 255]->name)); }\n",
> 
>     test/unittest/printf/tst.str.d
>         printf("command line = %s", stringof(vmlinux`saved_command_line));

These do not need the &-operator because of their use of stringof().

> > (i.e. lack of CTF, and BTF does not provide it) requires an explicit
> > use of the &-operator.
> > 
> > Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
> > ---
> >   test/unittest/options/err.D_ASRELO.kdefs.d | 2 +-
> >   test/unittest/options/tst.knodefs.sh       | 2 +-
> >   test/unittest/options/tst.linkmode.r       | 2 +-
> >   test/unittest/options/tst.linkmode.sh      | 4 ++--
> >   test/unittest/tracemem/tst.tracemem.d      | 2 +-
> >   5 files changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/test/unittest/options/err.D_ASRELO.kdefs.d b/test/unittest/options/err.D_ASRELO.kdefs.d
> > index 0a42fc6e..06bfe24e 100644
> > --- a/test/unittest/options/err.D_ASRELO.kdefs.d
> > +++ b/test/unittest/options/err.D_ASRELO.kdefs.d
> > @@ -14,6 +14,6 @@
> >   /* @@runtest-opts: -xerrtags -xlinkmode=dynamic -xknodefs -xkdefs */
> >   BEGIN {
> > -	trace((string)`linux_banner);
> > +	trace((string)&`linux_banner);
> >   	exit(0);
> >   }
> > diff --git a/test/unittest/options/tst.knodefs.sh b/test/unittest/options/tst.knodefs.sh
> > index 532d7eca..da65c49f 100755
> > --- a/test/unittest/options/tst.knodefs.sh
> > +++ b/test/unittest/options/tst.knodefs.sh
> > @@ -9,7 +9,7 @@
> >   dtrace=$1
> >   $dtrace $dt_flags -xlinkmode=dynamic -xknodefs \
> > -	-Sn 'BEGIN { trace((string)`linux_banner); exit(0); }' 2>&1 | \
> > +	-Sn 'BEGIN { trace((string)&`linux_banner); exit(0); }' 2>&1 | \
> >   	awk '/^KREL/ {
> >   		print;
> >   		while (getline == 1) {
> > diff --git a/test/unittest/options/tst.linkmode.r b/test/unittest/options/tst.linkmode.r
> > index 4b453f56..acbf8025 100644
> > --- a/test/unittest/options/tst.linkmode.r
> > +++ b/test/unittest/options/tst.linkmode.r
> > @@ -14,4 +14,4 @@ Linux version
> >   -- @@stderr --
> >   dtrace: failed to set -x linkmode: Invalid value for specified option
> > -dtrace: invalid probe specifier BEGIN { trace((string)`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
> > +dtrace: invalid probe specifier BEGIN { trace((string)&`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
> > diff --git a/test/unittest/options/tst.linkmode.sh b/test/unittest/options/tst.linkmode.sh
> > index 4e28f8bd..07045fd5 100755
> > --- a/test/unittest/options/tst.linkmode.sh
> > +++ b/test/unittest/options/tst.linkmode.sh
> > @@ -1,7 +1,7 @@
> >   #!/bin/bash
> >   #
> >   # Oracle Linux DTrace.
> > -# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> > +# Copyright (c) 2023, 2024, 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.
> >   #
> > @@ -12,7 +12,7 @@ dtrace=$1
> >   function mytest() {
> >   	echo try $1
> > -	$dtrace $1 -qn 'BEGIN { trace((string)`linux_banner); exit(0); }' | cut -c-14
> > +	$dtrace $1 -qn 'BEGIN { trace((string)&`linux_banner); exit(0); }' | cut -c-14
> >   }
> >   # Test different link modes.
> > diff --git a/test/unittest/tracemem/tst.tracemem.d b/test/unittest/tracemem/tst.tracemem.d
> > index 716b119f..fa838454 100644
> > --- a/test/unittest/tracemem/tst.tracemem.d
> > +++ b/test/unittest/tracemem/tst.tracemem.d
> > @@ -14,7 +14,7 @@
> >   #pragma D option quiet
> >   BEGIN {
> > -	p = (char *)`linux_banner;	/* first 14 chars are "Linux version " */
> > +	p = (char *)&`linux_banner;	/* first 14 chars are "Linux version " */
> >   	/* try tracemem() with various sizes */

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-08-02 22:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-02 20:38 [PATCH v2] test: fix another use of a kernel variable Kris Van Hees
2024-08-02 21:46 ` Eugene Loh
2024-08-02 22:08   ` Kris Van Hees

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox