Spdk/mk/spdk.unittest.mk
Jim Harris 18c8b52afa trace: allocate shm filesize based on number of cores used
Previously we would always allocate the shm file based on
max (128) cores which is unnecessary.  So use
spdk_env APIs to only allocate shm file size based
on the cores we might possible use.

With default settings, an shm file was 135MB before this
change, now an app using cores 0-7 will just use
about 9MB.

A lot of the trace-related code depended on there
*always* being a history for every core, even unused
ones, so a few additional changes were needed,
mainly the trace_parser library.

Tested by starting an app using a 0x4 core mask and
enabling a trace mask, generating some events, then
checking both the size of the shm file and that
spdk_trace works properly with the resulting file.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ie868b3e3658d6f82b2fea37cb87453e8a9e0abc4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14044
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-09-20 10:17:45 +00:00

56 lines
1.2 KiB
Makefile

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) Intel Corporation.
# All rights reserved.
#
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app_vars.mk
include $(SPDK_ROOT_DIR)/mk/spdk.mock.unittest.mk
# We don't want to run scan-build against the unit tests
# because it can't understand our mock function macros and
# throws false positives because of them.
# Scan-build inserts a phony compiler by overriding the value
# of CC, so we store the original CC under DEFAULT_CC and
# re-assign it here.
override CC=$(DEFAULT_CC)
C_SRCS = $(TEST_FILE)
CFLAGS += -I$(SPDK_ROOT_DIR)/lib
CFLAGS += -I$(SPDK_ROOT_DIR)/module
CFLAGS += -I$(SPDK_ROOT_DIR)/test
CFLAGS += -ffunction-sections
CFLAGS += -DSPDK_UNIT_TEST=1
LDFLAGS += -Wl,--gc-sections
SPDK_LIB_LIST += thread trace util log
LIBS += -lcunit $(SPDK_STATIC_LIB_LINKER_ARGS)
APP = $(TEST_FILE:.c=)$(EXEEXT)
ifneq ($(UNIT_TEST_LINK_ENV),1)
ENV_LINKER_ARGS =
else
# Rewrite the env linker args to be static.
ENV_DPDK_FILE = $(call spdk_lib_list_to_static_libs,env_dpdk)
endif
install: all
all: $(APP)
@:
$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS)
$(LINK_C)
clean:
$(CLEAN_C) $(APP)
include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk
uninstall:
@: