diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ef71728c..323a28ccd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## v19.10: (Upcoming Release) +### iSCSI + +Portals may no longer be associated with a cpumask. The scheduling of +connections is moving to a more dynamic model. + ## v19.07: ### ftl diff --git a/etc/spdk/iscsi.conf.in b/etc/spdk/iscsi.conf.in index 19b8d58be..e53063d68 100644 --- a/etc/spdk/iscsi.conf.in +++ b/etc/spdk/iscsi.conf.in @@ -71,13 +71,10 @@ # determine which targets are accessible over each portal group. # Up to 1024 portal directives are allowed. These define the network # portals of the portal group. The user must specify a IP address -# for each network portal, and may optionally specify a port and -# a cpumask. If the port is omitted, 3260 will be used. Cpumask will -# be used to set the processor affinity of the iSCSI connection -# through the portal. If the cpumask is omitted, cpumask will be -# set to all available processors. +# for each network portal, and may optionally specify a port. +# If the port is omitted, 3260 will be used. # Syntax: -# Portal [:[@]] +# Portal [:] [PortalGroup1] Portal DA1 192.168.2.21:3260 Portal DA2 192.168.2.22:3260@0xF diff --git a/lib/iscsi/conn.c b/lib/iscsi/conn.c index bd7be487b..48ec99c74 100644 --- a/lib/iscsi/conn.c +++ b/lib/iscsi/conn.c @@ -229,7 +229,6 @@ 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->sock = sock; conn->state = ISCSI_CONN_STATE_INVALID; @@ -1445,11 +1444,6 @@ 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)) { - continue; - } - break; } diff --git a/lib/iscsi/conn.h b/lib/iscsi/conn.h index f32a6bcad..7bbd5cb78 100644 --- a/lib/iscsi/conn.h +++ b/lib/iscsi/conn.h @@ -82,7 +82,6 @@ struct spdk_iscsi_conn { int pg_tag; char *portal_host; char *portal_port; - struct spdk_cpuset *portal_cpumask; uint32_t lcore; struct spdk_sock *sock; struct spdk_iscsi_sess *sess; diff --git a/lib/iscsi/iscsi_rpc.c b/lib/iscsi/iscsi_rpc.c index 75a6617d3..197dd10df 100644 --- a/lib/iscsi/iscsi_rpc.c +++ b/lib/iscsi/iscsi_rpc.c @@ -799,9 +799,13 @@ spdk_rpc_add_portal_group(struct spdk_jsonrpc_request *request, goto out; } for (i = 0; i < req.portal_list.num_portals; i++) { + if (req.portal_list.portals[i].cpumask) { + SPDK_WARNLOG("A portal was specified with a CPU mask which is no longer supported.\n"); + SPDK_WARNLOG("Ignoring the cpumask.\n"); + } + portal = spdk_iscsi_portal_create(req.portal_list.portals[i].host, - req.portal_list.portals[i].port, - req.portal_list.portals[i].cpumask); + req.portal_list.portals[i].port); if (portal == NULL) { SPDK_ERRLOG("portal_create failed\n"); goto out; diff --git a/lib/iscsi/portal_grp.c b/lib/iscsi/portal_grp.c index 8e364b956..1fa996995 100644 --- a/lib/iscsi/portal_grp.c +++ b/lib/iscsi/portal_grp.c @@ -109,10 +109,9 @@ iscsi_portal_find_by_addr(const char *host, const char *port) /* Assumes caller allocated host and port strings on the heap */ struct spdk_iscsi_portal * -spdk_iscsi_portal_create(const char *host, const char *port, const char *cpumask) +spdk_iscsi_portal_create(const char *host, const char *port) { struct spdk_iscsi_portal *p = NULL, *tmp; - int rc; assert(host != NULL); assert(port != NULL); @@ -144,21 +143,6 @@ spdk_iscsi_portal_create(const char *host, const char *port, const char *cpumask memcpy(p->port, port, strlen(port)); - if (cpumask != NULL) { - 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(&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(&p->cpumask, spdk_app_get_core_mask()); - } - p->sock = NULL; p->group = NULL; /* set at a later time by caller */ p->acceptor_poller = NULL; @@ -337,9 +321,12 @@ iscsi_parse_portal(const char *portalstring, struct spdk_iscsi_portal **ip, cpumask[len] = '\0'; } } + if (cpumask) { + SPDK_WARNLOG("The iSCSI target no longer supports setting a per-portal cpumask.\n"); + } if (!dry_run) { - *ip = spdk_iscsi_portal_create(host, port, cpumask); + *ip = spdk_iscsi_portal_create(host, port); if (!*ip) { goto error_out; } @@ -634,20 +621,17 @@ static const char *portal_group_section = \ "# determine which targets are accessible over each portal group.\n" "# Up to 1024 Portal directives are allowed. These define the network\n" "# portals of the portal group. The user must specify a IP address\n" - "# for each network portal, and may optionally specify a port and\n" - "# a cpumask. If the port is omitted, 3260 will be used. Cpumask will\n" - "# be used to set the processor affinity of the iSCSI connection\n" - "# through the portal. If the cpumask is omitted, cpumask will be\n" - "# set to all available processors.\n" + "# for each network portal, and may optionally specify a port.\n" + "# If the port is omitted, 3260 will be used\n" "# Syntax:\n" - "# Portal [:[@]]\n"; + "# Portal [:]\n"; #define PORTAL_GROUP_TMPL \ "[PortalGroup%d]\n" \ " Comment \"Portal%d\"\n" #define PORTAL_TMPL \ -" Portal DA1 %s:%s@0x%s\n" +" Portal DA1 %s:%s\n" void spdk_iscsi_portal_grps_config_text(FILE *fp) @@ -665,8 +649,7 @@ spdk_iscsi_portal_grps_config_text(FILE *fp) /* Dump portals */ 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)); + fprintf(fp, PORTAL_TMPL, p->host, p->port); } } } @@ -687,8 +670,6 @@ 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_json_write_object_end(w); } diff --git a/lib/iscsi/portal_grp.h b/lib/iscsi/portal_grp.h index f220657c7..e1dcb17a4 100644 --- a/lib/iscsi/portal_grp.h +++ b/lib/iscsi/portal_grp.h @@ -36,7 +36,6 @@ #define SPDK_PORTAL_GRP_H #include "spdk/conf.h" -#include "spdk/cpuset.h" #define MAX_PORTAL_ADDR 256 #define MAX_PORTAL_PORT 32 @@ -48,7 +47,6 @@ 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_poller *acceptor_poller; TAILQ_ENTRY(spdk_iscsi_portal) per_pg_tailq; TAILQ_ENTRY(spdk_iscsi_portal) g_tailq; @@ -63,8 +61,7 @@ struct spdk_iscsi_portal_grp { /* SPDK iSCSI Portal Group management API */ -struct spdk_iscsi_portal *spdk_iscsi_portal_create(const char *host, const char *port, - const char *cpumask); +struct spdk_iscsi_portal *spdk_iscsi_portal_create(const char *host, const char *port); void spdk_iscsi_portal_destroy(struct spdk_iscsi_portal *p); struct spdk_iscsi_portal_grp *spdk_iscsi_portal_grp_create(int tag); diff --git a/scripts/config_converter.py b/scripts/config_converter.py index 3c7f18a08..c15a3932b 100755 --- a/scripts/config_converter.py +++ b/scripts/config_converter.py @@ -529,8 +529,6 @@ def get_iscsi_portal_group_json(config, name): if "@" in items[1]: portal['port'] =\ items[1].rsplit(":", 1)[1].split("@")[0] - portal['cpumask'] =\ - items[1].rsplit(":", 1)[1].split("@")[1] else: portal['port'] = items[1].rsplit(":", 1)[1] portals.append(portal) diff --git a/scripts/rpc.py b/scripts/rpc.py index ee1b78952..55b180992 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -890,7 +890,8 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse else: port = split_port_cpumask[0] cpumask = split_port_cpumask[1] - portals.append({'host': ip, 'port': port, 'cpumask': cpumask}) + portals.append({'host': ip, 'port': port}) + print("WARNING: Specifying a portal group with a CPU mask is no longer supported. Ignoring it.") rpc.iscsi.add_portal_group( args.client, portals=portals, @@ -899,9 +900,8 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p = subparsers.add_parser('add_portal_group', help='Add a portal group') p.add_argument( 'tag', help='Portal group tag (unique, integer > 0)', type=int) - p.add_argument('portal_list', help="""List of portals in host:port@cpumask format, separated by whitespace - (cpumask is optional and can be skipped) - Example: '192.168.100.100:3260 192.168.100.100:3261 192.168.100.100:3262@0x1""") + p.add_argument('portal_list', help="""List of portals in host:port format, separated by whitespace + Example: '192.168.100.100:3260 192.168.100.100:3261 192.168.100.100:3262""") p.set_defaults(func=add_portal_group) def add_initiator_group(args): diff --git a/scripts/rpc/iscsi.py b/scripts/rpc/iscsi.py index c72ba93f0..2c0c24104 100644 --- a/scripts/rpc/iscsi.py +++ b/scripts/rpc/iscsi.py @@ -362,7 +362,7 @@ def add_portal_group(client, portals, tag): """Add a portal group. Args: - portals: List of portals, e.g. [{'host': ip, 'port': port}] or [{'host': ip, 'port': port, 'cpumask': cpumask}] + portals: List of portals, e.g. [{'host': ip, 'port': port}] tag: Initiator group tag (unique, integer > 0) Returns: diff --git a/scripts/spdkcli/ui_node_iscsi.py b/scripts/spdkcli/ui_node_iscsi.py index d0f9929c9..afa7bdf54 100644 --- a/scripts/spdkcli/ui_node_iscsi.py +++ b/scripts/spdkcli/ui_node_iscsi.py @@ -298,7 +298,7 @@ class UIPortalGroups(UINode): """Add a portal group. Args: - portals: List of portals e.g. ip:port@cpumask ip2:port2 + portals: List of portals e.g. ip:port ip2:port2 tag: Portal group tag (unique, integer > 0) """ portals = [] @@ -313,7 +313,7 @@ class UIPortalGroups(UINode): host, port = host.rsplit(":", -1) portals.append({'host': host, 'port': port}) if cpumask: - portals[-1]['cpumask'] = cpumask + print("WARNING: Specifying a CPU mask for portal groups is no longer supported. Ignoring.") tag = self.ui_eval_param(tag, "number", None) self.get_root().construct_portal_group(tag=tag, portals=portals) @@ -355,16 +355,16 @@ class UIPortalGroup(UINode): def refresh(self): self._children = set([]) for portal in self.pg.portals: - UIPortal(portal['host'], portal['port'], portal['cpumask'], self) + UIPortal(portal['host'], portal['port'], self) def summary(self): return "Portals: %d" % len(self.pg.portals), None class UIPortal(UINode): - def __init__(self, host, port, cpumask, parent): - UINode.__init__(self, "host=%s, port=%s, cpumask=%s" % ( - host, port, cpumask), parent) + def __init__(self, host, port, parent): + UINode.__init__(self, "host=%s, port=%s" % ( + host, port), parent) self.refresh() diff --git a/test/iscsi_tgt/rpc_config/rpc_config.py b/test/iscsi_tgt/rpc_config/rpc_config.py index 15a345a18..2172e3b76 100755 --- a/test/iscsi_tgt/rpc_config/rpc_config.py +++ b/test/iscsi_tgt/rpc_config/rpc_config.py @@ -199,7 +199,7 @@ def verify_portal_groups_rpc_methods(rpc_py, rpc_param): for idx, value in enumerate(lo_ip): # The portal group tag must start at 1 tag = idx + 1 - rpc.add_portal_group(tag, "{}:{}@{}".format(value, rpc_param['port'], rpc_param['cpumask'])) + rpc.add_portal_group(tag, "{}:{}".format(value, rpc_param['port'])) output = rpc.get_portal_groups() jsonvalues = json.loads(output) verify(len(jsonvalues) == tag, 1, @@ -211,8 +211,6 @@ def verify_portal_groups_rpc_methods(rpc_py, rpc_param): "host value is {}, expected {}".format(value['portals'][0]['host'], rpc_param['target_ip'])) verify(value['portals'][0]['port'] == str(rpc_param['port']), 1, "port value is {}, expected {}".format(value['portals'][0]['port'], str(rpc_param['port']))) - verify(value['portals'][0]['cpumask'] == format(rpc_param['cpumask'], '#x'), 1, - "cpumask value is {}, expected {}".format(value['portals'][0]['cpumask'], format(rpc_param['cpumask'], '#x'))) tag_list.append(value['tag']) verify(value['tag'] == idx + 1, 1, "tag value is {}, expected {}".format(value['tag'], idx + 1)) @@ -231,8 +229,6 @@ def verify_portal_groups_rpc_methods(rpc_py, rpc_param): "host value is {}, expected {}".format(jvalue['portals'][0]['host'], lo_ip[idx + jidx + 1])) verify(jvalue['portals'][0]['port'] == str(rpc_param['port']), 1, "port value is {}, expected {}".format(jvalue['portals'][0]['port'], str(rpc_param['port']))) - verify(jvalue['portals'][0]['cpumask'] == format(rpc_param['cpumask'], '#x'), 1, - "cpumask value is {}, expected {}".format(jvalue['portals'][0]['cpumask'], format(rpc_param['cpumask'], '#x'))) verify(jvalue['tag'] != value or jvalue['tag'] == tag_list[idx + jidx + 1], 1, "tag value is {}, expected {} and not {}".format(jvalue['tag'], tag_list[idx + jidx + 1], value)) diff --git a/test/spdkcli/match_files/spdkcli_iscsi.test.match b/test/spdkcli/match_files/spdkcli_iscsi.test.match index f67819819..ffb314921 100644 --- a/test/spdkcli/match_files/spdkcli_iscsi.test.match +++ b/test/spdkcli/match_files/spdkcli_iscsi.test.match @@ -32,10 +32,10 @@ o- iscsi ....................................................................... o- iscsi_connections ............................................................................................ [Connections: 0] o- portal_groups .............................................................................................. [Portal groups: 2] | o- portal_group1 .................................................................................................. [Portals: 2] - | | o- host=127.0.0.1, port=3261, cpumask=0x3 .............................................................................. [...] - | | o- host=127.0.0.1, port=3263, cpumask=0x1 .............................................................................. [...] + | | o- host=127.0.0.1, port=3261 ........................................................................................... [...] + | | o- host=127.0.0.1, port=3263 ........................................................................................... [...] | o- portal_group2 .................................................................................................. [Portals: 1] - | o- host=127.0.0.1, port=3262, cpumask=0x3 .............................................................................. [...] + | o- host=127.0.0.1, port=3262 ........................................................................................... [...] o- target_nodes ................................................................................................ [Target nodes: 2] o- iqn.2016-06.io.spdk:Target0 ......................................................................... [Id: 0, QueueDepth: 64] | o- auths ........................................ [disable_chap: True, require_chap: False, mutual_chap: False, chap_group: 1] 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 d8246203e..016efa52f 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 @@ -67,9 +67,8 @@ portal_create_ipv4_normal_case(void) const char *host = "192.168.2.0"; const char *port = "3260"; - const char *cpumask = "1"; - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_destroy(p); @@ -83,9 +82,8 @@ portal_create_ipv6_normal_case(void) const char *host = "[2001:ad6:1234::]"; const char *port = "3260"; - const char *cpumask = "1"; - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_destroy(p); @@ -99,9 +97,8 @@ portal_create_ipv4_wildcard_case(void) const char *host = "*"; const char *port = "3260"; - const char *cpumask = "1"; - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_destroy(p); @@ -115,44 +112,14 @@ portal_create_ipv6_wildcard_case(void) const char *host = "[*]"; const char *port = "3260"; - const char *cpumask = "1"; - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); } -static void -portal_create_cpumask_null_case(void) -{ - struct spdk_iscsi_portal *p; - - const char *host = "192.168.2.0"; - const char *port = "3260"; - const char *cpumask = NULL; - - p = spdk_iscsi_portal_create(host, port, cpumask); - CU_ASSERT(p != NULL); - - spdk_iscsi_portal_destroy(p); - CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); -} - -static void -portal_create_cpumask_no_bit_on_case(void) -{ - struct spdk_iscsi_portal *p; - - const char *host = "192.168.2.0"; - const char *port = "3260"; - const char *cpumask = "0"; - - p = spdk_iscsi_portal_create(host, port, cpumask); - CU_ASSERT(p == NULL); -} - static void portal_create_twice_case(void) { @@ -160,12 +127,11 @@ portal_create_twice_case(void) const char *host = "192.168.2.0"; const char *port = "3260"; - const char *cpumask = "1"; - p1 = spdk_iscsi_portal_create(host, port, cpumask); + p1 = spdk_iscsi_portal_create(host, port); CU_ASSERT(p1 != NULL); - p2 = spdk_iscsi_portal_create(host, port, cpumask); + p2 = spdk_iscsi_portal_create(host, port); CU_ASSERT(p2 == NULL); spdk_iscsi_portal_destroy(p1); @@ -178,26 +144,18 @@ parse_portal_ipv4_normal_case(void) const char *string = "192.168.2.0:3260@1"; const char *host_str = "192.168.2.0"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_cpuset_alloc(); - SPDK_CU_ASSERT_FATAL(cpumask_val != NULL); - - spdk_cpuset_set_cpu(cpumask_val, 0, true); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); - spdk_cpuset_free(cpumask_val); } static void @@ -206,26 +164,17 @@ parse_portal_ipv6_normal_case(void) const char *string = "[2001:ad6:1234::]:3260@1"; const char *host_str = "[2001:ad6:1234::]"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_cpuset_alloc(); - SPDK_CU_ASSERT_FATAL(cpumask_val != NULL); - - spdk_cpuset_set_cpu(cpumask_val, 0, true); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); - - spdk_cpuset_free(cpumask_val); } static void @@ -234,18 +183,14 @@ parse_portal_ipv4_skip_cpumask_case(void) const char *string = "192.168.2.0:3260"; const char *host_str = "192.168.2.0"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_app_get_core_mask(); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -257,18 +202,14 @@ parse_portal_ipv6_skip_cpumask_case(void) const char *string = "[2001:ad6:1234::]:3260"; const char *host_str = "[2001:ad6:1234::]"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_app_get_core_mask(); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -280,18 +221,14 @@ parse_portal_ipv4_skip_port_and_cpumask_case(void) const char *string = "192.168.2.0"; const char *host_str = "192.168.2.0"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_app_get_core_mask(); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -303,18 +240,14 @@ parse_portal_ipv6_skip_port_and_cpumask_case(void) const char *string = "[2001:ad6:1234::]"; const char *host_str = "[2001:ad6:1234::]"; const char *port_str = "3260"; - struct spdk_cpuset *cpumask_val; struct spdk_iscsi_portal *p = NULL; int rc; - cpumask_val = spdk_app_get_core_mask(); - rc = iscsi_parse_portal(string, &p, 0); CU_ASSERT(rc == 0); 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)); spdk_iscsi_portal_destroy(p); CU_ASSERT(TAILQ_EMPTY(&g_spdk_iscsi.portal_head)); @@ -328,12 +261,11 @@ portal_grp_register_unregister_case(void) int rc; const char *host = "192.168.2.0"; const char *port = "3260"; - const char *cpumask = "1"; pg1 = spdk_iscsi_portal_grp_create(1); CU_ASSERT(pg1 != NULL); - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_grp_add_portal(pg1, p); @@ -360,12 +292,11 @@ portal_grp_register_twice_case(void) int rc; const char *host = "192.168.2.0"; const char *port = "3260"; - const char *cpumask = "1"; pg1 = spdk_iscsi_portal_grp_create(1); CU_ASSERT(pg1 != NULL); - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_grp_add_portal(pg1, p); @@ -401,13 +332,12 @@ portal_grp_add_delete_case(void) const char *host = "192.168.2.0"; const char *port = "3260"; - const char *cpumask = "1"; /* internal of add_portal_group */ pg1 = spdk_iscsi_portal_grp_create(1); CU_ASSERT(pg1 != NULL); - p = spdk_iscsi_portal_create(host, port, cpumask); + p = spdk_iscsi_portal_create(host, port); CU_ASSERT(p != NULL); spdk_iscsi_portal_grp_add_portal(pg1, p); @@ -445,7 +375,6 @@ portal_grp_add_delete_twice_case(void) const char *host = "192.168.2.0"; const char *port1 = "3260", *port2 = "3261"; - const char *cpumask = "1"; thread = spdk_thread_create(NULL, NULL); spdk_set_thread(thread); @@ -454,7 +383,7 @@ portal_grp_add_delete_twice_case(void) pg1 = spdk_iscsi_portal_grp_create(1); CU_ASSERT(pg1 != NULL); - p = spdk_iscsi_portal_create(host, port1, cpumask); + p = spdk_iscsi_portal_create(host, port1); CU_ASSERT(p != NULL); spdk_iscsi_portal_grp_add_portal(pg1, p); @@ -470,7 +399,7 @@ portal_grp_add_delete_twice_case(void) pg2 = spdk_iscsi_portal_grp_create(2); CU_ASSERT(pg2 != NULL); - p = spdk_iscsi_portal_create(host, port2, cpumask); + p = spdk_iscsi_portal_create(host, port2); CU_ASSERT(p != NULL); spdk_iscsi_portal_grp_add_portal(pg2, p); @@ -520,10 +449,6 @@ main(int argc, char **argv) portal_create_ipv4_wildcard_case) == NULL || CU_add_test(suite, "portal create ipv6 wildcard case", portal_create_ipv6_wildcard_case) == NULL - || CU_add_test(suite, "portal create cpumask NULL case", - portal_create_cpumask_null_case) == NULL - || CU_add_test(suite, "portal create cpumask no bit on case", - portal_create_cpumask_no_bit_on_case) == NULL || CU_add_test(suite, "portal create twice case", portal_create_twice_case) == NULL || CU_add_test(suite, "parse portal ipv4 normal case",