bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 bpf-next 0/4] Prepare veristat for packaging
@ 2023-03-31 22:24 Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed Andrii Nakryiko
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Andrii Nakryiko @ 2023-03-31 22:24 UTC (permalink / raw)
  To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team

This patch set relicenses veristat.c to dual GPL-2.0/BSD-2 license and
prepares it to be mirrored to Github at libbpf/veristat repo.

Few small issues in the source code are fixed, found during Github sync
preparetion.

v2->v3:
  - fix few warnings about uninitialized variable uses;
v1->v2:
  - drop linux/compiler.h and define own ARRAY_SIZE macro;

Andrii Nakryiko (4):
  veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause
    licensed
  veristat: improve version reporting
  veristat: avoid using kernel-internal headers
  veristat: small fixed found in -O2 mode

 tools/testing/selftests/bpf/veristat.c | 30 +++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

-- 
2.34.1


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

* [PATCH v3 bpf-next 1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed
  2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
@ 2023-03-31 22:24 ` Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 2/4] veristat: improve version reporting Andrii Nakryiko
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Andrii Nakryiko @ 2023-03-31 22:24 UTC (permalink / raw)
  To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team

Dual-license veristat.c to dual GPL-2.0-only or BSD-2-Clause license.
This is needed to mirror it to Github to make it convenient for distro
packagers to package veristat as a separate package.

Veristat grew into a useful tool by itself, and there are already
a bunch of users relying on veristat as generic BPF loading and
verification helper tool. So making it easy to packagers by providing
Github mirror just like we do for bpftool and libbpf is the next step to
get veristat into the hands of users.

Apart from few typo fixes, I'm the sole contributor to veristat.c so
far, so no extra Acks should be needed for relicensing.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
 tools/testing/selftests/bpf/veristat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/veristat.c b/tools/testing/selftests/bpf/veristat.c
index 7888c03ba631..612ca52c6fba 100644
--- a/tools/testing/selftests/bpf/veristat.c
+++ b/tools/testing/selftests/bpf/veristat.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */
 #define _GNU_SOURCE
 #include <argp.h>
-- 
2.34.1


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

* [PATCH v3 bpf-next 2/4] veristat: improve version reporting
  2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed Andrii Nakryiko
@ 2023-03-31 22:24 ` Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 3/4] veristat: avoid using kernel-internal headers Andrii Nakryiko
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Andrii Nakryiko @ 2023-03-31 22:24 UTC (permalink / raw)
  To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team

For packaging version of the tool is important, so add a simple way to
specify veristat version for upstream mirror at Github.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
 tools/testing/selftests/bpf/veristat.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/veristat.c b/tools/testing/selftests/bpf/veristat.c
index 612ca52c6fba..daac72b76508 100644
--- a/tools/testing/selftests/bpf/veristat.c
+++ b/tools/testing/selftests/bpf/veristat.c
@@ -140,6 +140,7 @@ static struct env {
 	bool quiet;
 	int log_level;
 	enum resfmt out_fmt;
+	bool show_version;
 	bool comparison_mode;
 	bool replay_mode;
 
@@ -176,16 +177,22 @@ static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va
 	return vfprintf(stderr, format, args);
 }
 
-const char *argp_program_version = "veristat";
+#ifndef VERISTAT_VERSION
+#define VERISTAT_VERSION "<kernel>"
+#endif
+
+const char *argp_program_version = "veristat v" VERISTAT_VERSION;
 const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
 const char argp_program_doc[] =
 "veristat    BPF verifier stats collection and comparison tool.\n"
 "\n"
 "USAGE: veristat <obj-file> [<obj-file>...]\n"
-"   OR: veristat -C <baseline.csv> <comparison.csv>\n";
+"   OR: veristat -C <baseline.csv> <comparison.csv>\n"
+"   OR: veristat -R <results.csv>\n";
 
 static const struct argp_option opts[] = {
 	{ NULL, 'h', NULL, OPTION_HIDDEN, "Show the full help" },
+	{ "version", 'V', NULL, 0, "Print version" },
 	{ "verbose", 'v', NULL, 0, "Verbose mode" },
 	{ "log-level", 'l', "LEVEL", 0, "Verifier log level (default 0 for normal mode, 1 for verbose mode)" },
 	{ "debug", 'd', NULL, 0, "Debug mode (turns on libbpf debug logging)" },
@@ -212,6 +219,9 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
 	case 'h':
 		argp_state_help(state, stderr, ARGP_HELP_STD_HELP);
 		break;
+	case 'V':
+		env.show_version = true;
+		break;
 	case 'v':
 		env.verbose = true;
 		break;
@@ -1991,6 +2001,11 @@ int main(int argc, char **argv)
 	if (argp_parse(&argp, argc, argv, 0, NULL, NULL))
 		return 1;
 
+	if (env.show_version) {
+		printf("%s\n", argp_program_version);
+		return 0;
+	}
+
 	if (env.verbose && env.quiet) {
 		fprintf(stderr, "Verbose and quiet modes are incompatible, please specify just one or neither!\n\n");
 		argp_help(&argp, stderr, ARGP_HELP_USAGE, "veristat");
-- 
2.34.1


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

* [PATCH v3 bpf-next 3/4] veristat: avoid using kernel-internal headers
  2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 2/4] veristat: improve version reporting Andrii Nakryiko
@ 2023-03-31 22:24 ` Andrii Nakryiko
  2023-03-31 22:24 ` [PATCH v3 bpf-next 4/4] veristat: small fixed found in -O2 mode Andrii Nakryiko
  2023-04-01 16:10 ` [PATCH v3 bpf-next 0/4] Prepare veristat for packaging patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Andrii Nakryiko @ 2023-03-31 22:24 UTC (permalink / raw)
  To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team

Drop linux/compiler.h include, which seems to be needed for ARRAY_SIZE
macro only. Redefine own version of ARRAY_SIZE instead.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
 tools/testing/selftests/bpf/veristat.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/veristat.c b/tools/testing/selftests/bpf/veristat.c
index daac72b76508..e592d05bccb2 100644
--- a/tools/testing/selftests/bpf/veristat.c
+++ b/tools/testing/selftests/bpf/veristat.c
@@ -4,7 +4,6 @@
 #include <argp.h>
 #include <string.h>
 #include <stdlib.h>
-#include <linux/compiler.h>
 #include <sched.h>
 #include <pthread.h>
 #include <dirent.h>
@@ -20,6 +19,10 @@
 #include <gelf.h>
 #include <float.h>
 
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+#endif
+
 enum stat_id {
 	VERDICT,
 	DURATION,
-- 
2.34.1


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

* [PATCH v3 bpf-next 4/4] veristat: small fixed found in -O2 mode
  2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
                   ` (2 preceding siblings ...)
  2023-03-31 22:24 ` [PATCH v3 bpf-next 3/4] veristat: avoid using kernel-internal headers Andrii Nakryiko
@ 2023-03-31 22:24 ` Andrii Nakryiko
  2023-04-01 16:10 ` [PATCH v3 bpf-next 0/4] Prepare veristat for packaging patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Andrii Nakryiko @ 2023-03-31 22:24 UTC (permalink / raw)
  To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team

Fix few potentially unitialized variables uses, found while building
veristat.c in release (-O2) mode.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
 tools/testing/selftests/bpf/veristat.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/veristat.c b/tools/testing/selftests/bpf/veristat.c
index e592d05bccb2..53d7ec168268 100644
--- a/tools/testing/selftests/bpf/veristat.c
+++ b/tools/testing/selftests/bpf/veristat.c
@@ -810,7 +810,7 @@ static int guess_prog_type_by_ctx_name(const char *ctx_name,
 		enum bpf_prog_type prog_type;
 		enum bpf_attach_type attach_type;
 	} ctx_map[] = {
-		/* __sk_buff is most ambiguous, for now we assume cgroup_skb */
+		/* __sk_buff is most ambiguous, we assume TC program */
 		{ "__sk_buff", "sk_buff", BPF_PROG_TYPE_SCHED_CLS },
 		{ "bpf_sock", "sock", BPF_PROG_TYPE_CGROUP_SOCK, BPF_CGROUP_INET4_POST_BIND },
 		{ "bpf_sock_addr", "bpf_sock_addr_kern",  BPF_PROG_TYPE_CGROUP_SOCK_ADDR, BPF_CGROUP_INET4_BIND },
@@ -1045,6 +1045,7 @@ static int process_obj(const char *filename)
 			goto cleanup;
 		}
 
+		lprog = NULL;
 		bpf_object__for_each_program(tprog, tobj) {
 			const char *tprog_name = bpf_program__name(tprog);
 
@@ -1855,6 +1856,7 @@ static int handle_comparison_mode(void)
 one_more_time:
 	output_comp_headers(cur_fmt);
 
+	last_idx = -1;
 	for (i = 0; i < env.join_stat_cnt; i++) {
 		const struct verif_stats_join *join = &env.join_stats[i];
 
-- 
2.34.1


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

* Re: [PATCH v3 bpf-next 0/4] Prepare veristat for packaging
  2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
                   ` (3 preceding siblings ...)
  2023-03-31 22:24 ` [PATCH v3 bpf-next 4/4] veristat: small fixed found in -O2 mode Andrii Nakryiko
@ 2023-04-01 16:10 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-04-01 16:10 UTC (permalink / raw)
  To: Andrii Nakryiko; +Cc: bpf, ast, daniel, martin.lau, kernel-team

Hello:

This series was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Fri, 31 Mar 2023 15:24:01 -0700 you wrote:
> This patch set relicenses veristat.c to dual GPL-2.0/BSD-2 license and
> prepares it to be mirrored to Github at libbpf/veristat repo.
> 
> Few small issues in the source code are fixed, found during Github sync
> preparetion.
> 
> v2->v3:
>   - fix few warnings about uninitialized variable uses;
> v1->v2:
>   - drop linux/compiler.h and define own ARRAY_SIZE macro;
> 
> [...]

Here is the summary with links:
  - [v3,bpf-next,1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed
    https://git.kernel.org/bpf/bpf-next/c/3ed85ae80283
  - [v3,bpf-next,2/4] veristat: improve version reporting
    https://git.kernel.org/bpf/bpf-next/c/71c8c39f5177
  - [v3,bpf-next,3/4] veristat: avoid using kernel-internal headers
    https://git.kernel.org/bpf/bpf-next/c/e3b65c0c1a5b
  - [v3,bpf-next,4/4] veristat: small fixed found in -O2 mode
    https://git.kernel.org/bpf/bpf-next/c/ebf390c9d013

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] 6+ messages in thread

end of thread, other threads:[~2023-04-01 16:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-31 22:24 [PATCH v3 bpf-next 0/4] Prepare veristat for packaging Andrii Nakryiko
2023-03-31 22:24 ` [PATCH v3 bpf-next 1/4] veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed Andrii Nakryiko
2023-03-31 22:24 ` [PATCH v3 bpf-next 2/4] veristat: improve version reporting Andrii Nakryiko
2023-03-31 22:24 ` [PATCH v3 bpf-next 3/4] veristat: avoid using kernel-internal headers Andrii Nakryiko
2023-03-31 22:24 ` [PATCH v3 bpf-next 4/4] veristat: small fixed found in -O2 mode Andrii Nakryiko
2023-04-01 16:10 ` [PATCH v3 bpf-next 0/4] Prepare veristat for packaging 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;
as well as URLs for NNTP newsgroup(s).