Skip to content

Commit 4f3fe11

Browse files
committed
Make translate_numa_mode return umf_result_t
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 5751bf1 commit 4f3fe11

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

src/provider/provider_os_memory.c

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -133,37 +133,42 @@ umf_result_t os_translate_flags(unsigned in_flags, unsigned max,
133133
return UMF_RESULT_SUCCESS;
134134
}
135135

136-
static hwloc_membind_policy_t translate_numa_mode(umf_numa_mode_t mode,
137-
int nodemaskEmpty) {
136+
static umf_result_t translate_numa_mode(umf_numa_mode_t mode, int nodemaskEmpty,
137+
hwloc_membind_policy_t *numa_policy) {
138138
switch (mode) {
139139
case UMF_NUMA_MODE_DEFAULT:
140140
if (!nodemaskEmpty) {
141141
// nodeset must be empty
142-
return -1;
142+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
143143
}
144-
return HWLOC_MEMBIND_DEFAULT;
144+
*numa_policy = HWLOC_MEMBIND_DEFAULT;
145+
return UMF_RESULT_SUCCESS;
145146
case UMF_NUMA_MODE_BIND:
146147
if (nodemaskEmpty) {
147148
// nodeset must not be empty
148-
return -1;
149+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
149150
}
150-
return HWLOC_MEMBIND_BIND;
151+
*numa_policy = HWLOC_MEMBIND_BIND;
152+
return UMF_RESULT_SUCCESS;
151153
case UMF_NUMA_MODE_INTERLEAVE:
152154
if (nodemaskEmpty) {
153155
// nodeset must not be empty
154-
return -1;
156+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
155157
}
156-
return HWLOC_MEMBIND_INTERLEAVE;
158+
*numa_policy = HWLOC_MEMBIND_INTERLEAVE;
159+
return UMF_RESULT_SUCCESS;
157160
case UMF_NUMA_MODE_PREFERRED:
158-
return HWLOC_MEMBIND_BIND;
161+
*numa_policy = HWLOC_MEMBIND_BIND;
162+
return UMF_RESULT_SUCCESS;
159163
case UMF_NUMA_MODE_LOCAL:
160164
if (!nodemaskEmpty) {
161165
// nodeset must be empty
162-
return -1;
166+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
163167
}
164-
return HWLOC_MEMBIND_BIND;
168+
*numa_policy = HWLOC_MEMBIND_BIND;
169+
return UMF_RESULT_SUCCESS;
165170
}
166-
return -1;
171+
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
167172
}
168173

169174
static int getHwlocMembindFlags(umf_numa_mode_t mode) {
@@ -179,7 +184,6 @@ static int getHwlocMembindFlags(umf_numa_mode_t mode) {
179184
static umf_result_t translate_params(umf_os_memory_provider_params_t *in_params,
180185
os_memory_provider_t *provider) {
181186
umf_result_t result;
182-
int ret;
183187

184188
result = os_translate_mem_protection_flags(in_params->protection,
185189
&provider->protection);
@@ -190,12 +194,13 @@ static umf_result_t translate_params(umf_os_memory_provider_params_t *in_params,
190194

191195
// NUMA config
192196
int emptyNodeset = (!in_params->maxnode || !in_params->nodemask);
193-
ret = translate_numa_mode(in_params->numa_mode, emptyNodeset);
194-
if (ret < 0) {
197+
result = translate_numa_mode(in_params->numa_mode, emptyNodeset,
198+
&provider->numa_policy);
199+
if (result != UMF_RESULT_SUCCESS) {
195200
LOG_ERR("incorrect NUMA mode: %u", in_params->numa_mode);
196-
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
201+
return result;
197202
}
198-
provider->numa_policy = ret;
203+
199204
provider->numa_flags = getHwlocMembindFlags(in_params->numa_mode);
200205

201206
return nodemask_to_hwloc_nodeset(in_params->nodemask, in_params->maxnode,

0 commit comments

Comments
 (0)