Skip to content

Commit 46475cc

Browse files
anakryikoborkmann
authored andcommitted
selftests/bpf: Support building selftests in optimized -O2 mode
Add support for building selftests with -O2 level of optimization, which allows more compiler warnings detection (like lots of potentially uninitialized usage), but also is useful to have a faster-running test for some CPU-intensive tests. One can build optimized versions of libbpf and selftests by running: $ make RELEASE=1 There is a measurable speed up of about 10 seconds for me locally, though it's mostly capped by non-parallelized serial tests. User CPU time goes down by total 40 seconds, from 1m10s to 0m28s. Unoptimized build (-O0) ======================= Summary: 430/3544 PASSED, 25 SKIPPED, 4 FAILED real 1m59.937s user 1m10.877s sys 3m14.880s Optimized build (-O2) ===================== Summary: 425/3543 PASSED, 25 SKIPPED, 9 FAILED real 1m50.540s user 0m28.406s sys 3m13.198s Signed-off-by: Andrii Nakryiko <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Reviewed-by: Alan Maguire <[email protected]> Acked-by: Jiri Olsa <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent 925a015 commit 46475cc

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

tools/testing/selftests/bpf/Makefile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ endif
2727
BPF_GCC ?= $(shell command -v bpf-gcc;)
2828
SAN_CFLAGS ?=
2929
SAN_LDFLAGS ?= $(SAN_CFLAGS)
30-
CFLAGS += -g -O0 -rdynamic \
30+
RELEASE ?=
31+
OPT_FLAGS ?= $(if $(RELEASE),-O2,-O0)
32+
CFLAGS += -g $(OPT_FLAGS) -rdynamic \
3133
-Wall -Werror \
3234
$(GENFLAGS) $(SAN_CFLAGS) \
3335
-I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
@@ -243,7 +245,7 @@ $(OUTPUT)/runqslower: $(BPFOBJ) | $(DEFAULT_BPFTOOL) $(RUNQSLOWER_OUTPUT)
243245
BPFTOOL_OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \
244246
BPFOBJ_OUTPUT=$(BUILD_DIR)/libbpf \
245247
BPFOBJ=$(BPFOBJ) BPF_INCLUDE=$(INCLUDE_DIR) \
246-
EXTRA_CFLAGS='-g -O0 $(SAN_CFLAGS)' \
248+
EXTRA_CFLAGS='-g $(OPT_FLAGS) $(SAN_CFLAGS)' \
247249
EXTRA_LDFLAGS='$(SAN_LDFLAGS)' && \
248250
cp $(RUNQSLOWER_OUTPUT)runqslower $@
249251

@@ -281,7 +283,7 @@ $(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
281283
$(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool
282284
$(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
283285
ARCH= CROSS_COMPILE= CC="$(HOSTCC)" LD="$(HOSTLD)" \
284-
EXTRA_CFLAGS='-g -O0' \
286+
EXTRA_CFLAGS='-g $(OPT_FLAGS)' \
285287
OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \
286288
LIBBPF_OUTPUT=$(HOST_BUILD_DIR)/libbpf/ \
287289
LIBBPF_DESTDIR=$(HOST_SCRATCH_DIR)/ \
@@ -292,7 +294,7 @@ $(CROSS_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
292294
$(BPFOBJ) | $(BUILD_DIR)/bpftool
293295
$(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
294296
ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
295-
EXTRA_CFLAGS='-g -O0' \
297+
EXTRA_CFLAGS='-g $(OPT_FLAGS)' \
296298
OUTPUT=$(BUILD_DIR)/bpftool/ \
297299
LIBBPF_OUTPUT=$(BUILD_DIR)/libbpf/ \
298300
LIBBPF_DESTDIR=$(SCRATCH_DIR)/ \
@@ -315,7 +317,7 @@ $(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
315317
$(APIDIR)/linux/bpf.h \
316318
| $(BUILD_DIR)/libbpf
317319
$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
318-
EXTRA_CFLAGS='-g -O0 $(SAN_CFLAGS)' \
320+
EXTRA_CFLAGS='-g $(OPT_FLAGS) $(SAN_CFLAGS)' \
319321
EXTRA_LDFLAGS='$(SAN_LDFLAGS)' \
320322
DESTDIR=$(SCRATCH_DIR) prefix= all install_headers
321323

@@ -324,7 +326,7 @@ $(HOST_BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
324326
$(APIDIR)/linux/bpf.h \
325327
| $(HOST_BUILD_DIR)/libbpf
326328
$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) \
327-
EXTRA_CFLAGS='-g -O0' ARCH= CROSS_COMPILE= \
329+
EXTRA_CFLAGS='-g $(OPT_FLAGS)' ARCH= CROSS_COMPILE= \
328330
OUTPUT=$(HOST_BUILD_DIR)/libbpf/ \
329331
CC="$(HOSTCC)" LD="$(HOSTLD)" \
330332
DESTDIR=$(HOST_SCRATCH_DIR)/ prefix= all install_headers

0 commit comments

Comments
 (0)