Commit 32a79de8 authored by John Levon's avatar John Levon Committed by Tomasz Zawadzki
Browse files

lib/event: add disable_cpumask_locks to spdk_app_opts



Allow this to be set programmatically, not just as a command-line
argument.

Signed-off-by: default avatarJohn Levon <john.levon@nutanix.com>
Change-Id: If1965a63138a6f1177877427b1b7ca5becc21a39
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23208


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
parent 719d03c6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -191,8 +191,13 @@ struct spdk_app_opts {
	 */
	void *json_data;
	size_t json_data_size;

	/**
	 * If set, disable CPU claiming.
	 */
	bool disable_cpumask_locks;
} __attribute__((packed));
SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 252, "Incorrect size");
SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 253, "Incorrect size");

/**
 * Initialize the default value of opts
+5 −4
Original line number Diff line number Diff line
@@ -63,7 +63,6 @@ static bool g_delay_subsystem_init = false;
static bool g_shutdown_sig_received = false;
static char *g_executable_name;
static struct spdk_app_opts g_default_opts;
static bool g_disable_cpumask_locks = false;

static int g_core_locks[SPDK_CONFIG_MAX_LCORES];

@@ -325,6 +324,7 @@ spdk_app_opts_init(struct spdk_app_opts *opts, size_t opts_size)
	SET_FIELD(rpc_allowlist, NULL);
	SET_FIELD(rpc_log_file, NULL);
	SET_FIELD(rpc_log_level, SPDK_LOG_DISABLED);
	SET_FIELD(disable_cpumask_locks, false);
#undef SET_FIELD
}

@@ -680,10 +680,11 @@ app_copy_opts(struct spdk_app_opts *opts, struct spdk_app_opts *opts_user, size_
	SET_FIELD(rpc_log_level);
	SET_FIELD(json_data);
	SET_FIELD(json_data_size);
	SET_FIELD(disable_cpumask_locks);

	/* You should not remove this statement, but need to update the assert statement
	 * if you add a new field, and also add a corresponding SET_FIELD statement */
	SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 252, "Incorrect size");
	SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 253, "Incorrect size");

#undef SET_FIELD
}
@@ -896,7 +897,7 @@ spdk_app_start(struct spdk_app_opts *opts_user, spdk_msg_fn start_fn,
		g_core_locks[i] = -1;
	}

	if (!g_disable_cpumask_locks) {
	if (!opts->disable_cpumask_locks) {
		if (claim_cpu_cores(NULL)) {
			SPDK_ERRLOG("Unable to acquire lock on assigned core mask - exiting.\n");
			return 1;
@@ -1262,7 +1263,7 @@ spdk_app_parse_args(int argc, char **argv, struct spdk_app_opts *opts,
			opts->lcore_map = optarg;
			break;
		case DISABLE_CPUMASK_LOCKS_OPT_IDX:
			g_disable_cpumask_locks = true;
			opts->disable_cpumask_locks = true;
			break;
		case MEM_CHANNELS_OPT_IDX:
			opts->mem_channel = spdk_strtol(optarg, 0);