* [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64
@ 2023-05-12 11:31 Alan Maguire
2023-05-12 11:58 ` Jiri Olsa
2023-05-15 19:20 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 4+ messages in thread
From: Alan Maguire @ 2023-05-12 11:31 UTC (permalink / raw)
To: quentin
Cc: ast, daniel, andrii, martin.lau, song, yhs, john.fastabend,
kpsingh, sdf, haoluo, jolsa, kuba, bpf, Alan Maguire,
Nicky Veitch
On aarch64, "bpftool feature" reports an incorrect BPF JIT limit:
$ sudo /sbin/bpftool feature
Scanning system configuration...
bpf() syscall restricted to privileged users
JIT compiler is enabled
JIT compiler hardening is disabled
JIT compiler kallsyms exports are enabled for root
skipping kernel config, can't open file: No such file or directory
Global memory limit for JIT compiler for unprivileged users is -201326592 bytes
This is because /proc/sys/net/core/bpf_jit_limit reports
$ sudo cat /proc/sys/net/core/bpf_jit_limit
68169519595520
...and an int is assumed in read_procfs(). Change read_procfs()
to return a long to avoid negative value reporting.
Fixes: 7a4522bbef0c ("tools: bpftool: add probes for /proc/ eBPF parameters")
Reported-by: Nicky Veitch <nicky.veitch@oracle.com>
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
---
tools/bpf/bpftool/feature.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/tools/bpf/bpftool/feature.c b/tools/bpf/bpftool/feature.c
index da16e6a27ccc..0675d6a46413 100644
--- a/tools/bpf/bpftool/feature.c
+++ b/tools/bpf/bpftool/feature.c
@@ -167,12 +167,12 @@ static int get_vendor_id(int ifindex)
return strtol(buf, NULL, 0);
}
-static int read_procfs(const char *path)
+static long read_procfs(const char *path)
{
char *endptr, *line = NULL;
size_t len = 0;
FILE *fd;
- int res;
+ long res;
fd = fopen(path, "r");
if (!fd)
@@ -194,7 +194,7 @@ static int read_procfs(const char *path)
static void probe_unprivileged_disabled(void)
{
- int res;
+ long res;
/* No support for C-style ouptut */
@@ -216,14 +216,14 @@ static void probe_unprivileged_disabled(void)
printf("Unable to retrieve required privileges for bpf() syscall\n");
break;
default:
- printf("bpf() syscall restriction has unknown value %d\n", res);
+ printf("bpf() syscall restriction has unknown value %ld\n", res);
}
}
}
static void probe_jit_enable(void)
{
- int res;
+ long res;
/* No support for C-style ouptut */
@@ -245,7 +245,7 @@ static void probe_jit_enable(void)
printf("Unable to retrieve JIT-compiler status\n");
break;
default:
- printf("JIT-compiler status has unknown value %d\n",
+ printf("JIT-compiler status has unknown value %ld\n",
res);
}
}
@@ -253,7 +253,7 @@ static void probe_jit_enable(void)
static void probe_jit_harden(void)
{
- int res;
+ long res;
/* No support for C-style ouptut */
@@ -275,7 +275,7 @@ static void probe_jit_harden(void)
printf("Unable to retrieve JIT hardening status\n");
break;
default:
- printf("JIT hardening status has unknown value %d\n",
+ printf("JIT hardening status has unknown value %ld\n",
res);
}
}
@@ -283,7 +283,7 @@ static void probe_jit_harden(void)
static void probe_jit_kallsyms(void)
{
- int res;
+ long res;
/* No support for C-style ouptut */
@@ -302,14 +302,14 @@ static void probe_jit_kallsyms(void)
printf("Unable to retrieve JIT kallsyms export status\n");
break;
default:
- printf("JIT kallsyms exports status has unknown value %d\n", res);
+ printf("JIT kallsyms exports status has unknown value %ld\n", res);
}
}
}
static void probe_jit_limit(void)
{
- int res;
+ long res;
/* No support for C-style ouptut */
@@ -322,7 +322,7 @@ static void probe_jit_limit(void)
printf("Unable to retrieve global memory limit for JIT compiler for unprivileged users\n");
break;
default:
- printf("Global memory limit for JIT compiler for unprivileged users is %d bytes\n", res);
+ printf("Global memory limit for JIT compiler for unprivileged users is %ld bytes\n", res);
}
}
}
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64
2023-05-12 11:31 [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64 Alan Maguire
@ 2023-05-12 11:58 ` Jiri Olsa
2023-05-12 12:09 ` Quentin Monnet
2023-05-15 19:20 ` patchwork-bot+netdevbpf
1 sibling, 1 reply; 4+ messages in thread
From: Jiri Olsa @ 2023-05-12 11:58 UTC (permalink / raw)
To: Alan Maguire
Cc: quentin, ast, daniel, andrii, martin.lau, song, yhs,
john.fastabend, kpsingh, sdf, haoluo, kuba, bpf, Nicky Veitch
On Fri, May 12, 2023 at 12:31:34PM +0100, Alan Maguire wrote:
> On aarch64, "bpftool feature" reports an incorrect BPF JIT limit:
>
> $ sudo /sbin/bpftool feature
> Scanning system configuration...
> bpf() syscall restricted to privileged users
> JIT compiler is enabled
> JIT compiler hardening is disabled
> JIT compiler kallsyms exports are enabled for root
> skipping kernel config, can't open file: No such file or directory
> Global memory limit for JIT compiler for unprivileged users is -201326592 bytes
>
> This is because /proc/sys/net/core/bpf_jit_limit reports
>
> $ sudo cat /proc/sys/net/core/bpf_jit_limit
> 68169519595520
>
> ...and an int is assumed in read_procfs(). Change read_procfs()
> to return a long to avoid negative value reporting.
>
> Fixes: 7a4522bbef0c ("tools: bpftool: add probes for /proc/ eBPF parameters")
> Reported-by: Nicky Veitch <nicky.veitch@oracle.com>
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
jirka
> ---
> tools/bpf/bpftool/feature.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/tools/bpf/bpftool/feature.c b/tools/bpf/bpftool/feature.c
> index da16e6a27ccc..0675d6a46413 100644
> --- a/tools/bpf/bpftool/feature.c
> +++ b/tools/bpf/bpftool/feature.c
> @@ -167,12 +167,12 @@ static int get_vendor_id(int ifindex)
> return strtol(buf, NULL, 0);
> }
>
> -static int read_procfs(const char *path)
> +static long read_procfs(const char *path)
> {
> char *endptr, *line = NULL;
> size_t len = 0;
> FILE *fd;
> - int res;
> + long res;
>
> fd = fopen(path, "r");
> if (!fd)
> @@ -194,7 +194,7 @@ static int read_procfs(const char *path)
>
> static void probe_unprivileged_disabled(void)
> {
> - int res;
> + long res;
>
> /* No support for C-style ouptut */
>
> @@ -216,14 +216,14 @@ static void probe_unprivileged_disabled(void)
> printf("Unable to retrieve required privileges for bpf() syscall\n");
> break;
> default:
> - printf("bpf() syscall restriction has unknown value %d\n", res);
> + printf("bpf() syscall restriction has unknown value %ld\n", res);
> }
> }
> }
>
> static void probe_jit_enable(void)
> {
> - int res;
> + long res;
>
> /* No support for C-style ouptut */
>
> @@ -245,7 +245,7 @@ static void probe_jit_enable(void)
> printf("Unable to retrieve JIT-compiler status\n");
> break;
> default:
> - printf("JIT-compiler status has unknown value %d\n",
> + printf("JIT-compiler status has unknown value %ld\n",
> res);
> }
> }
> @@ -253,7 +253,7 @@ static void probe_jit_enable(void)
>
> static void probe_jit_harden(void)
> {
> - int res;
> + long res;
>
> /* No support for C-style ouptut */
>
> @@ -275,7 +275,7 @@ static void probe_jit_harden(void)
> printf("Unable to retrieve JIT hardening status\n");
> break;
> default:
> - printf("JIT hardening status has unknown value %d\n",
> + printf("JIT hardening status has unknown value %ld\n",
> res);
> }
> }
> @@ -283,7 +283,7 @@ static void probe_jit_harden(void)
>
> static void probe_jit_kallsyms(void)
> {
> - int res;
> + long res;
>
> /* No support for C-style ouptut */
>
> @@ -302,14 +302,14 @@ static void probe_jit_kallsyms(void)
> printf("Unable to retrieve JIT kallsyms export status\n");
> break;
> default:
> - printf("JIT kallsyms exports status has unknown value %d\n", res);
> + printf("JIT kallsyms exports status has unknown value %ld\n", res);
> }
> }
> }
>
> static void probe_jit_limit(void)
> {
> - int res;
> + long res;
>
> /* No support for C-style ouptut */
>
> @@ -322,7 +322,7 @@ static void probe_jit_limit(void)
> printf("Unable to retrieve global memory limit for JIT compiler for unprivileged users\n");
> break;
> default:
> - printf("Global memory limit for JIT compiler for unprivileged users is %d bytes\n", res);
> + printf("Global memory limit for JIT compiler for unprivileged users is %ld bytes\n", res);
> }
> }
> }
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64
2023-05-12 11:58 ` Jiri Olsa
@ 2023-05-12 12:09 ` Quentin Monnet
0 siblings, 0 replies; 4+ messages in thread
From: Quentin Monnet @ 2023-05-12 12:09 UTC (permalink / raw)
To: Jiri Olsa, Alan Maguire
Cc: ast, daniel, andrii, martin.lau, song, yhs, john.fastabend,
kpsingh, sdf, haoluo, kuba, bpf, Nicky Veitch
2023-05-12 13:58 UTC+0200 ~ Jiri Olsa <olsajiri@gmail.com>
> On Fri, May 12, 2023 at 12:31:34PM +0100, Alan Maguire wrote:
>> On aarch64, "bpftool feature" reports an incorrect BPF JIT limit:
>>
>> $ sudo /sbin/bpftool feature
>> Scanning system configuration...
>> bpf() syscall restricted to privileged users
>> JIT compiler is enabled
>> JIT compiler hardening is disabled
>> JIT compiler kallsyms exports are enabled for root
>> skipping kernel config, can't open file: No such file or directory
>> Global memory limit for JIT compiler for unprivileged users is -201326592 bytes
>>
>> This is because /proc/sys/net/core/bpf_jit_limit reports
>>
>> $ sudo cat /proc/sys/net/core/bpf_jit_limit
>> 68169519595520
>>
>> ...and an int is assumed in read_procfs(). Change read_procfs()
>> to return a long to avoid negative value reporting.
>>
>> Fixes: 7a4522bbef0c ("tools: bpftool: add probes for /proc/ eBPF parameters")
>> Reported-by: Nicky Veitch <nicky.veitch@oracle.com>
>> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
>
> Acked-by: Jiri Olsa <jolsa@kernel.org>
>
> jirka
Acked-by: Quentin Monnet <quentin@isovalent.com>
Thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64
2023-05-12 11:31 [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64 Alan Maguire
2023-05-12 11:58 ` Jiri Olsa
@ 2023-05-15 19:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-05-15 19:20 UTC (permalink / raw)
To: Alan Maguire
Cc: quentin, ast, daniel, andrii, martin.lau, song, yhs,
john.fastabend, kpsingh, sdf, haoluo, jolsa, kuba, bpf,
nicky.veitch
Hello:
This patch was applied to bpf/bpf-next.git (master)
by Daniel Borkmann <daniel@iogearbox.net>:
On Fri, 12 May 2023 12:31:34 +0100 you wrote:
> On aarch64, "bpftool feature" reports an incorrect BPF JIT limit:
>
> $ sudo /sbin/bpftool feature
> Scanning system configuration...
> bpf() syscall restricted to privileged users
> JIT compiler is enabled
> JIT compiler hardening is disabled
> JIT compiler kallsyms exports are enabled for root
> skipping kernel config, can't open file: No such file or directory
> Global memory limit for JIT compiler for unprivileged users is -201326592 bytes
>
> [...]
Here is the summary with links:
- [bpf] tools: bpftool: JIT limited misreported as negative value on aarch64
https://git.kernel.org/bpf/bpf-next/c/04cb8453a91c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-05-15 19:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-12 11:31 [PATCH bpf] tools: bpftool: JIT limited misreported as negative value on aarch64 Alan Maguire
2023-05-12 11:58 ` Jiri Olsa
2023-05-12 12:09 ` Quentin Monnet
2023-05-15 19:20 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox