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>
56 lines
1.2 KiB
Makefile
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:
|
|
@:
|