diff --git a/lib/iscsi/conn.c b/lib/iscsi/conn.c index 76dd7e74f..bd7be487b 100644 --- a/lib/iscsi/conn.c +++ b/lib/iscsi/conn.c @@ -229,7 +229,7 @@ spdk_iscsi_conn_construct(struct spdk_iscsi_portal *portal, conn->pg_tag = portal->group->tag; conn->portal_host = strdup(portal->host); conn->portal_port = strdup(portal->port); - conn->portal_cpumask = portal->cpumask; + conn->portal_cpumask = &portal->cpumask; conn->sock = sock; conn->state = ISCSI_CONN_STATE_INVALID; @@ -1446,7 +1446,7 @@ spdk_iscsi_conn_schedule(struct spdk_iscsi_conn *conn) lcore = g_next_core; g_next_core = spdk_env_get_next_core(g_next_core); - if (!spdk_cpuset_get_cpu(conn->portal->cpumask, lcore)) { + if (!spdk_cpuset_get_cpu(&conn->portal->cpumask, lcore)) { continue; } diff --git a/lib/iscsi/portal_grp.c b/lib/iscsi/portal_grp.c index 216974dc2..8e364b956 100644 --- a/lib/iscsi/portal_grp.c +++ b/lib/iscsi/portal_grp.c @@ -112,7 +112,6 @@ struct spdk_iscsi_portal * spdk_iscsi_portal_create(const char *host, const char *port, const char *cpumask) { struct spdk_iscsi_portal *p = NULL, *tmp; - struct spdk_cpuset *core_mask = NULL; int rc; assert(host != NULL); @@ -145,29 +144,21 @@ spdk_iscsi_portal_create(const char *host, const char *port, const char *cpumask memcpy(p->port, port, strlen(port)); - core_mask = spdk_cpuset_alloc(); - if (!core_mask) { - SPDK_ERRLOG("spdk_cpuset_alloc() failed for host\n"); - goto error_out; - } - if (cpumask != NULL) { - rc = spdk_app_parse_core_mask(cpumask, core_mask); + rc = spdk_app_parse_core_mask(cpumask, &p->cpumask); if (rc < 0) { SPDK_ERRLOG("cpumask (%s) is invalid\n", cpumask); goto error_out; } - if (spdk_cpuset_count(core_mask) == 0) { + if (spdk_cpuset_count(&p->cpumask) == 0) { SPDK_ERRLOG("cpumask (%s) does not contain core mask (0x%s)\n", cpumask, spdk_cpuset_fmt(spdk_app_get_core_mask())); goto error_out; } } else { - spdk_cpuset_copy(core_mask, spdk_app_get_core_mask()); + spdk_cpuset_copy(&p->cpumask, spdk_app_get_core_mask()); } - p->cpumask = core_mask; - p->sock = NULL; p->group = NULL; /* set at a later time by caller */ p->acceptor_poller = NULL; @@ -186,7 +177,6 @@ spdk_iscsi_portal_create(const char *host, const char *port, const char *cpumask return p; error_out: - spdk_cpuset_free(core_mask); free(p); return NULL; @@ -203,7 +193,6 @@ spdk_iscsi_portal_destroy(struct spdk_iscsi_portal *p) TAILQ_REMOVE(&g_spdk_iscsi.portal_head, p, g_tailq); pthread_mutex_unlock(&g_spdk_iscsi.mutex); - spdk_cpuset_free(p->cpumask); free(p); } @@ -677,7 +666,7 @@ spdk_iscsi_portal_grps_config_text(FILE *fp) TAILQ_FOREACH(p, &pg->head, per_pg_tailq) { if (NULL == p) { continue; } fprintf(fp, PORTAL_TMPL, p->host, p->port, - spdk_cpuset_fmt(p->cpumask)); + spdk_cpuset_fmt(&p->cpumask)); } } } @@ -699,7 +688,7 @@ iscsi_portal_grp_info_json(struct spdk_iscsi_portal_grp *pg, spdk_json_write_named_string(w, "host", portal->host); spdk_json_write_named_string(w, "port", portal->port); spdk_json_write_named_string_fmt(w, "cpumask", "0x%s", - spdk_cpuset_fmt(portal->cpumask)); + spdk_cpuset_fmt(&portal->cpumask)); spdk_json_write_object_end(w); } diff --git a/lib/iscsi/portal_grp.h b/lib/iscsi/portal_grp.h index 3aacec09a..f220657c7 100644 --- a/lib/iscsi/portal_grp.h +++ b/lib/iscsi/portal_grp.h @@ -48,7 +48,7 @@ struct spdk_iscsi_portal { char host[MAX_PORTAL_ADDR + 1]; char port[MAX_PORTAL_PORT + 1]; struct spdk_sock *sock; - struct spdk_cpuset *cpumask; + struct spdk_cpuset cpumask; struct spdk_poller *acceptor_poller; TAILQ_ENTRY(spdk_iscsi_portal) per_pg_tailq; TAILQ_ENTRY(spdk_iscsi_portal) g_tailq; diff --git a/test/unit/lib/iscsi/portal_grp.c/portal_grp_ut.c b/test/unit/lib/iscsi/portal_grp.c/portal_grp_ut.c index 96962a6b9..d8246203e 100644 --- a/test/unit/lib/iscsi/portal_grp.c/portal_grp_ut.c +++ b/test/unit/lib/iscsi/portal_grp.c/portal_grp_ut.c @@ -192,7 +192,7 @@ parse_portal_ipv4_normal_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -220,7 +220,7 @@ parse_portal_ipv6_normal_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -245,7 +245,7 @@ parse_portal_ipv4_skip_cpumask_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -268,7 +268,7 @@ parse_portal_ipv6_skip_cpumask_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -291,7 +291,7 @@ parse_portal_ipv4_skip_port_and_cpumask_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -314,7 +314,7 @@ parse_portal_ipv6_skip_port_and_cpumask_case(void) SPDK_CU_ASSERT_FATAL(p != NULL); CU_ASSERT(strcmp(p->host, host_str) == 0); CU_ASSERT(strcmp(p->port, port_str) == 0); - CU_ASSERT(spdk_cpuset_equal(p->cpumask, cpumask_val)); + CU_ASSERT(spdk_cpuset_equal(&p->cpumask, cpumask_val)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head));