From 4aeb123c4540977f324ac13801e8b7b0ccef7ff7 Mon Sep 17 00:00:00 2001 From: David Ozog Date: Tue, 30 Apr 2024 12:18:47 -0400 Subject: [PATCH 1/6] teams: set config to defaults if config_mask is 0 --- src/shmem_team.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/shmem_team.c b/src/shmem_team.c index 8cf665e3..9944a938 100644 --- a/src/shmem_team.c +++ b/src/shmem_team.c @@ -334,10 +334,22 @@ int shmem_internal_team_split_strided(shmem_internal_team_t *parent_team, int PE myteam->start = global_PE_start; myteam->stride = PE_stride; myteam->size = PE_size; - if (config) { - myteam->config = *config; - myteam->config_mask = config_mask; + + if (config_mask == 0) { + shmem_team_config_t default_config; + default_config.num_contexts = 0; + myteam->config_mask = 0; + memcpy(&myteam->config, &default_config, sizeof(shmem_team_config_t)); + } else { + if (config_mask != SHMEM_TEAM_NUM_CONTEXTS) { + RAISE_WARN_MSG("Invalid team_split_strided config_mask (%ld)\n", config_mask); + return -1; + } else { + myteam->config = *config; + myteam->config_mask = config_mask; + } } + myteam->contexts_len = 0; myteam->psync_idx = -1; From aa1e7226ef6cfa93ccdb42081624e7b1f0c4d368 Mon Sep 17 00:00:00 2001 From: David Ozog Date: Tue, 30 Apr 2024 12:26:09 -0400 Subject: [PATCH 2/6] NOMERGE/teams: point tests submodule @Elliots fork --- .gitmodules | 4 ++-- modules/tests-sos | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7a168ce2..f4477aa4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "modules/tests-sos"] path = modules/tests-sos - url = ../../openshmem-org/tests-sos.git - branch = main + url = ../../ronawho/tests-sos.git + branch = fix_team_get_config_test diff --git a/modules/tests-sos b/modules/tests-sos index d1adb71b..99fb849f 160000 --- a/modules/tests-sos +++ b/modules/tests-sos @@ -1 +1 @@ -Subproject commit d1adb71bcf68e61ab800cefb238e4e05e3102ef9 +Subproject commit 99fb849fd5af45e7e9f78c5a4ab965b1fe850fac From 625a986796ca1ee94ce6714d0d42bdb8db60b721 Mon Sep 17 00:00:00 2001 From: David Ozog Date: Tue, 30 Apr 2024 13:06:16 -0400 Subject: [PATCH 3/6] teams: preallocate num_contexts if config_mask set --- src/shmem_team.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/shmem_team.c b/src/shmem_team.c index 9944a938..9be30723 100644 --- a/src/shmem_team.c +++ b/src/shmem_team.c @@ -336,21 +336,27 @@ int shmem_internal_team_split_strided(shmem_internal_team_t *parent_team, int PE myteam->size = PE_size; if (config_mask == 0) { - shmem_team_config_t default_config; - default_config.num_contexts = 0; - myteam->config_mask = 0; - memcpy(&myteam->config, &default_config, sizeof(shmem_team_config_t)); + shmem_team_config_t defaults; + myteam->config_mask = 0; + myteam->contexts_len = 0; + defaults.num_contexts = 0; + memcpy(&myteam->config, &defaults, sizeof(shmem_team_config_t)); } else { if (config_mask != SHMEM_TEAM_NUM_CONTEXTS) { RAISE_WARN_MSG("Invalid team_split_strided config_mask (%ld)\n", config_mask); return -1; } else { - myteam->config = *config; - myteam->config_mask = config_mask; + shmem_internal_assertp(config->num_contexts >= 0); + myteam->config = *config; + myteam->config_mask = config_mask; + myteam->contexts_len = config->num_contexts; + myteam->contexts = malloc(config->num_contexts * sizeof(shmem_transport_ctx_t*)); + for (int i = 0; i < config->num_contexts; i++) { + myteam->contexts[i] = NULL; + } } } - myteam->contexts_len = 0; myteam->psync_idx = -1; shmem_internal_op_to_all(psync_pool_avail_reduced, From 2c498da027acc9545b645265cf7e194ff3bf83ba Mon Sep 17 00:00:00 2001 From: David Ozog Date: Tue, 30 Apr 2024 13:51:38 -0400 Subject: [PATCH 4/6] teams: point tests-sos submodule to latest ref --- modules/tests-sos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tests-sos b/modules/tests-sos index 99fb849f..26de6baf 160000 --- a/modules/tests-sos +++ b/modules/tests-sos @@ -1 +1 @@ -Subproject commit 99fb849fd5af45e7e9f78c5a4ab965b1fe850fac +Subproject commit 26de6baf701ee66c04db4d63d58206ea67436c3b From e9e7f5995c956ef489bc9c77ce9b684eae3ed661 Mon Sep 17 00:00:00 2001 From: David Ozog Date: Wed, 1 May 2024 12:26:59 -0400 Subject: [PATCH 5/6] teams: warn if non-null config with 0 config_mask --- src/shmem_team.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/shmem_team.c b/src/shmem_team.c index 9be30723..f0476ab6 100644 --- a/src/shmem_team.c +++ b/src/shmem_team.c @@ -336,6 +336,10 @@ int shmem_internal_team_split_strided(shmem_internal_team_t *parent_team, int PE myteam->size = PE_size; if (config_mask == 0) { + if (config != NULL) { + RAISE_WARN_MSG("%s %s\n", "team_split_strided operation encountered an unexpected", + "non-NULL config structure passed with a config_mask of 0."); + } shmem_team_config_t defaults; myteam->config_mask = 0; myteam->contexts_len = 0; From 6198b74fd2f149ad9ab070926d6d005d6926797e Mon Sep 17 00:00:00 2001 From: David Ozog Date: Wed, 1 May 2024 12:38:34 -0400 Subject: [PATCH 6/6] teams: warn if masked config is non-null in "get" --- src/teams_c.c4 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/teams_c.c4 b/src/teams_c.c4 index 73b79e30..c86065f7 100644 --- a/src/teams_c.c4 +++ b/src/teams_c.c4 @@ -91,6 +91,9 @@ shmem_team_get_config(shmem_team_t team, long config_mask, shmem_team_config_t * return -1; } memcpy(config, &myteam->config, sizeof(shmem_team_config_t)); + } else if (config != NULL) { + RAISE_WARN_MSG("%s %s\n", "shmem_team_get_config encountered an unexpected", + "non-NULL config structure passed with a config_mask of 0."); } return 0;