event: return const cpumask for spdk_app_get_core_mask() API

Fix issue #1541.

Change-Id: Ia0ecc049387f1e8eb04f1b55f7a7ace0b4b42491
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4306
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Changpeng Liu 2020-09-17 21:22:49 -04:00 committed by Tomasz Zawadzki
parent 107dd02126
commit 276c31cd1f
5 changed files with 14 additions and 7 deletions

View File

@ -239,7 +239,7 @@ int spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask);
*
* \return the bitmask of the active CPU cores.
*/
struct spdk_cpuset *spdk_app_get_core_mask(void);
const struct spdk_cpuset *spdk_app_get_core_mask(void);
#define SPDK_APP_GETOPT_STRING "c:de:ghi:m:n:p:r:s:uvB:L:RW:"

View File

@ -169,15 +169,17 @@ static const struct option g_cmdline_options[] = {
static void
app_config_dump_global_section(FILE *fp)
{
struct spdk_cpuset *coremask;
const struct spdk_cpuset *coremask;
struct spdk_cpuset tmp_mask;
if (NULL == fp) {
return;
}
coremask = spdk_app_get_core_mask();
spdk_cpuset_copy(&tmp_mask, coremask);
fprintf(fp, GLOBAL_CONFIG_TMPL, spdk_cpuset_fmt(coremask),
fprintf(fp, GLOBAL_CONFIG_TMPL, spdk_cpuset_fmt(&tmp_mask),
spdk_trace_get_tpoint_group_mask());
}

View File

@ -484,6 +484,8 @@ rpc_thread_set_cpumask(struct spdk_jsonrpc_request *request,
{
struct rpc_thread_set_cpumask req = {};
struct rpc_thread_set_cpumask_ctx *ctx;
const struct spdk_cpuset *coremask;
struct spdk_cpuset tmp_mask;
struct spdk_thread *thread;
int rc;
@ -521,9 +523,11 @@ rpc_thread_set_cpumask(struct spdk_jsonrpc_request *request,
}
if (spdk_cpuset_count(&ctx->cpumask) == 0) {
coremask = spdk_app_get_core_mask();
spdk_cpuset_copy(&tmp_mask, coremask);
spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
"No CPU is selected from reactor mask %s\n",
spdk_cpuset_fmt(spdk_app_get_core_mask()));
spdk_cpuset_fmt(&tmp_mask));
goto err;
}

View File

@ -414,7 +414,7 @@ int
spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask)
{
int ret;
struct spdk_cpuset *validmask;
const struct spdk_cpuset *validmask;
ret = spdk_cpuset_parse(cpumask, mask);
if (ret < 0) {
@ -427,7 +427,7 @@ spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask)
return 0;
}
struct spdk_cpuset *
const struct spdk_cpuset *
spdk_app_get_core_mask(void)
{
return &g_reactor_core_mask;

View File

@ -1257,7 +1257,8 @@ __construct_targets(void *arg)
static void
test_main(void *arg1)
{
struct spdk_cpuset tmpmask = {}, *appmask;
struct spdk_cpuset tmpmask = {};
const struct spdk_cpuset *appmask;
uint32_t cpu, init_cpu;
pthread_mutex_init(&g_test_mutex, NULL);