Skip to content

Commit 2f469f5

Browse files
author
ferrol aderholdt
committed
REVIEW: address feedback
1 parent 0b16cd7 commit 2f469f5

File tree

14 files changed

+125
-112
lines changed

14 files changed

+125
-112
lines changed

src/components/base/ucc_base_iface.h

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ typedef struct ucc_team ucc_team_t;
2121
typedef struct ucc_context ucc_context_t;
2222
typedef struct ucc_coll_score ucc_coll_score_t;
2323
typedef struct ucc_coll_task ucc_coll_task_t;
24+
typedef struct ucc_mem_map_memh_t ucc_mem_map_memh_t;
25+
typedef struct ucc_mem_map_tl_t ucc_mem_map_tl_t;
2426

2527
typedef struct ucc_base_lib {
2628
ucc_log_component_config_t log_component;
@@ -123,10 +125,22 @@ typedef struct ucc_base_context_iface {
123125
void (*destroy)(ucc_base_context_t *ctx);
124126
ucc_status_t (*get_attr)(const ucc_base_context_t *context,
125127
ucc_base_ctx_attr_t *attr);
126-
ucc_status_t (*mem_map)(const ucc_base_context_t *context, int type,
127-
void *memh, void *tl_h);
128-
ucc_status_t (*mem_unmap)(const ucc_base_context_t *context, int type, void *tl_h);
129-
ucc_status_t (*memh_pack)(const ucc_base_context_t *context, int type, void *memh,
128+
/* maps a memory-region specified by memory handle, memh, to a tl specific
129+
handle, tl_h, based on the mapping mode defined by mode. For the export
130+
mode, the TL will map a local memory-region memory and store the
131+
necessary information in the tl_h. For the import mode, the TL will
132+
map, if necessary, memory handles provided by a peer and store the
133+
necessary information in the tl_h. */
134+
ucc_status_t (*mem_map)(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
135+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
136+
/* unmaps a memory-region previously mapped to a specific TL pointed to by tl_h
137+
with a mode of mapping by mode. */
138+
ucc_status_t (*mem_unmap)(const ucc_base_context_t *context, ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h);
139+
/* packs necessary TL specific elements for a mapped memory-region to a
140+
packed buffer. Each TL implementing this function should set the
141+
packed_size member of the tl_h, allocate memory for the pack_buffer, and
142+
pack data in the buffer. */
143+
ucc_status_t (*memh_pack)(const ucc_base_context_t *context, ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h,
130144
void **pack_buffer);
131145
} ucc_base_context_iface_t;
132146

src/components/cl/basic/cl_basic.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ ucc_status_t ucc_cl_basic_get_lib_attr(const ucc_base_lib_t *lib,
1010
ucc_base_lib_attr_t *base_attr);
1111
ucc_status_t ucc_cl_basic_get_context_attr(const ucc_base_context_t *context,
1212
ucc_base_ctx_attr_t *base_attr);
13-
ucc_status_t ucc_cl_basic_mem_map(const ucc_base_context_t *context, int type,
14-
void *memh, void *tl_h);
15-
ucc_status_t ucc_cl_basic_mem_unmap(const ucc_base_context_t *context, int type,
16-
void *tl_h);
17-
ucc_status_t ucc_cl_basic_memh_pack(const ucc_base_context_t *context, int type,
18-
void *memh, void **packed_buffer);
13+
ucc_status_t ucc_cl_basic_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
14+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
15+
ucc_status_t ucc_cl_basic_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
16+
ucc_mem_map_tl_t *tl_h);
17+
ucc_status_t ucc_cl_basic_memh_pack(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
18+
ucc_mem_map_tl_t *tl_h, void **packed_buffer);
1919

2020
ucc_status_t ucc_cl_basic_get_lib_properties(ucc_base_lib_properties_t *prop);
2121

src/components/cl/hier/cl_hier.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ ucc_status_t ucc_cl_hier_get_lib_properties(ucc_base_lib_properties_t *prop);
1818
ucc_status_t ucc_cl_hier_get_context_attr(const ucc_base_context_t *context,
1919
ucc_base_ctx_attr_t *base_attr);
2020

21-
ucc_status_t ucc_cl_hier_mem_map(const ucc_base_context_t *context, int type,
22-
void *memh, void *tl_h);
21+
ucc_status_t ucc_cl_hier_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
22+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
2323

24-
ucc_status_t ucc_cl_hier_mem_unmap(const ucc_base_context_t *context, int type,
25-
void *tl_h);
24+
ucc_status_t ucc_cl_hier_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
25+
ucc_mem_map_tl_t *tl_h);
2626

2727
ucc_status_t ucc_cl_hier_memh_pack(const ucc_base_context_t *context,
28-
int type, void *memh, void **packed_buffer);
28+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **packed_buffer);
2929

3030
static ucc_config_field_t ucc_cl_hier_lib_config_table[] = {
3131
{"", "", NULL, ucc_offsetof(ucc_cl_hier_lib_config_t, super),

src/components/tl/cuda/tl_cuda.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ static ucs_config_field_t ucc_tl_cuda_context_config_table[] = {
6565
ucc_status_t ucc_tl_cuda_get_context_attr(const ucc_base_context_t *context,
6666
ucc_base_ctx_attr_t *base_attr);
6767

68-
ucc_status_t ucc_tl_cuda_mem_map(const ucc_base_context_t *context, int type,
69-
void *memh, void *tl_h);
68+
ucc_status_t ucc_tl_cuda_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
69+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
7070

71-
ucc_status_t ucc_tl_cuda_mem_unmap(const ucc_base_context_t *context, int type,
72-
void *memh);
71+
ucc_status_t ucc_tl_cuda_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
72+
ucc_mem_map_tl_t *tl_h);
7373

7474
ucc_status_t ucc_tl_cuda_memh_pack(const ucc_base_context_t *context,
75-
int type, void *memh, void **pack_buffer);
75+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
7676

7777
UCC_CLASS_DEFINE_NEW_FUNC(ucc_tl_cuda_context_t, ucc_base_context_t,
7878
const ucc_base_context_params_t *,

src/components/tl/mlx5/tl_mlx5.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ ucc_status_t ucc_tl_mlx5_get_lib_attr(const ucc_base_lib_t *lib,
1111
ucc_status_t ucc_tl_mlx5_get_context_attr(const ucc_base_context_t *context,
1212
ucc_base_ctx_attr_t * base_attr);
1313

14-
ucc_status_t ucc_tl_mlx5_mem_map(const ucc_base_context_t *context, int type,
15-
void *memh, void *tl_h);
14+
ucc_status_t ucc_tl_mlx5_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
15+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
1616

17-
ucc_status_t ucc_tl_mlx5_mem_unmap(const ucc_base_context_t *context, int type,
18-
void *memh);
17+
ucc_status_t ucc_tl_mlx5_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
18+
ucc_mem_map_tl_t *tl_h);
1919

2020
ucc_status_t ucc_tl_mlx5_memh_pack(const ucc_base_context_t *context,
21-
int type, void *memh, void **pack_buffer);
21+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
2222

2323
ucc_status_t ucc_tl_mlx5_get_lib_properties(ucc_base_lib_properties_t *prop);
2424

src/components/tl/nccl/tl_nccl.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ ucc_status_t ucc_tl_nccl_get_lib_properties(ucc_base_lib_properties_t *prop);
1616
ucc_status_t ucc_tl_nccl_get_context_attr(const ucc_base_context_t *context,
1717
ucc_base_ctx_attr_t *base_attr);
1818

19-
ucc_status_t ucc_tl_nccl_mem_map(const ucc_base_context_t *context, int type,
20-
void *memh, void *tl_h);
19+
ucc_status_t ucc_tl_nccl_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
20+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
2121

22-
ucc_status_t ucc_tl_nccl_mem_unmap(const ucc_base_context_t *context, int type,
23-
void *memh);
22+
ucc_status_t ucc_tl_nccl_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
23+
ucc_mem_map_tl_t *tl_h);
2424

2525
ucc_status_t ucc_tl_nccl_memh_pack(const ucc_base_context_t *context,
26-
int type, void *memh, void **pack_buffer);
26+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
2727

2828
static ucc_config_field_t ucc_tl_nccl_lib_config_table[] = {
2929
{"", "", NULL, ucc_offsetof(ucc_tl_nccl_lib_config_t, super),

src/components/tl/rccl/tl_rccl.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ ucc_status_t ucc_tl_rccl_get_lib_properties(ucc_base_lib_properties_t *prop);
1717
ucc_status_t ucc_tl_rccl_get_context_attr(const ucc_base_context_t *context,
1818
ucc_base_ctx_attr_t *base_attr);
1919

20-
ucc_status_t ucc_tl_rccl_mem_map(const ucc_base_context_t *context, int type,
21-
void *memh, void *tl_h);
20+
ucc_status_t ucc_tl_rccl_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
21+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
2222

23-
ucc_status_t ucc_tl_rccl_mem_unmap(const ucc_base_context_t *context, int type,
24-
void *memh);
23+
ucc_status_t ucc_tl_rccl_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
24+
ucc_mem_map_tl_t *tl_h);
2525

2626
ucc_status_t ucc_tl_rccl_memh_pack(const ucc_base_context_t *context,
27-
int type, void *memh, void **pack_buffer);
27+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
2828

2929
static ucc_config_field_t ucc_tl_rccl_lib_config_table[] = {
3030
{"", "", NULL, ucc_offsetof(ucc_tl_rccl_lib_config_t, super),

src/components/tl/self/tl_self.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ ucc_status_t ucc_tl_self_get_lib_attr(const ucc_base_lib_t *lib,
1616
ucc_status_t ucc_tl_self_get_context_attr(const ucc_base_context_t *context,
1717
ucc_base_ctx_attr_t *base_attr);
1818

19-
ucc_status_t ucc_tl_self_mem_map(const ucc_base_context_t *context, int type,
20-
void *memh, void *tl_h);
19+
ucc_status_t ucc_tl_self_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
20+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
2121

22-
ucc_status_t ucc_tl_self_mem_unmap(const ucc_base_context_t *context, int type,
23-
void *memh);
22+
ucc_status_t ucc_tl_self_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
23+
ucc_mem_map_tl_t *tl_h);
2424

2525
ucc_status_t ucc_tl_self_memh_pack(const ucc_base_context_t *context,
26-
int type, void *memh, void **pack_buffer);
26+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
2727

2828
ucc_status_t ucc_tl_self_get_lib_properties(ucc_base_lib_properties_t *prop);
2929

src/components/tl/sharp/tl_sharp.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ ucc_status_t ucc_tl_sharp_get_lib_properties(ucc_base_lib_properties_t *prop);
1515
ucc_status_t ucc_tl_sharp_get_context_attr(const ucc_base_context_t *context,
1616
ucc_base_ctx_attr_t *base_attr);
1717

18-
ucc_status_t ucc_tl_sharp_mem_map(const ucc_base_context_t *context, int type,
19-
void *memh, void *tl_h);
18+
ucc_status_t ucc_tl_sharp_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
19+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
2020

21-
ucc_status_t ucc_tl_sharp_mem_unmap(const ucc_base_context_t *context, int type,
22-
void *memh);
21+
ucc_status_t ucc_tl_sharp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
22+
ucc_mem_map_tl_t *tl_h);
2323

2424
ucc_status_t ucc_tl_sharp_memh_pack(const ucc_base_context_t *context,
25-
int type, void *memh, void **pack_buffer);
25+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h, void **pack_buffer);
2626

2727
static ucc_config_field_t ucc_tl_sharp_lib_config_table[] = {
2828
{"", "", NULL, ucc_offsetof(ucc_tl_sharp_lib_config_t, super),

src/components/tl/ucp/tl_ucp.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ ucc_status_t ucc_tl_ucp_get_lib_properties(ucc_base_lib_properties_t *prop);
3232
ucc_status_t ucc_tl_ucp_get_context_attr(const ucc_base_context_t *context,
3333
ucc_base_ctx_attr_t *base_attr);
3434

35-
ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, int type,
36-
void *memh, void *tl_h);
35+
ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
36+
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h);
3737

38-
ucc_status_t ucc_tl_ucp_memh_pack(const ucc_base_context_t *context, int type, void *memh,
38+
ucc_status_t ucc_tl_ucp_memh_pack(const ucc_base_context_t *context, ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h,
3939
void **pack_buffer);
4040

41-
ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, int type,
42-
void *memh);
41+
ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
42+
ucc_mem_map_tl_t *memh);
4343

4444
ucc_config_field_t ucc_tl_ucp_lib_config_table[] = {
4545
{"", "", NULL, ucc_offsetof(ucc_tl_ucp_lib_config_t, super),
@@ -286,7 +286,7 @@ static ucs_config_field_t ucc_tl_ucp_context_config_table[] = {
286286
UCC_CONFIG_TYPE_BOOL},
287287

288288
{"EXPORTED_MEMORY_HANDLE", "n",
289-
"If set to 1, initialize UCP context with the exported memory handle "
289+
"If set to yes, initialize UCP context with the exported memory handle "
290290
"feature, which is useful for offload devices such as a DPU. Otherwise "
291291
"disable the use of this feature.",
292292
ucc_offsetof(ucc_tl_ucp_context_config_t, exported_memory_handle),

src/components/tl/ucp/tl_ucp_context.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -638,15 +638,15 @@ ucc_status_t ucc_tl_ucp_mem_map_memhbuf(ucc_tl_ucp_context_t *ctx,
638638

639639
ucc_status_t ucc_tl_ucp_mem_map_export(ucc_tl_ucp_context_t *ctx, void *address,
640640
size_t len,
641-
ucc_mem_map_type_t type,
641+
ucc_mem_map_mode_t mode,
642642
ucc_tl_ucp_memh_data_t *m_data)
643643
{
644644
ucc_status_t ucc_status = UCC_OK;
645645
ucp_mem_h mh;
646646
ucp_mem_map_params_t mmap_params;
647647
ucs_status_t status;
648648

649-
if (type == UCC_MEM_MAP_TYPE_LOCAL) {
649+
if (mode == UCC_MEM_MAP_MODE_EXPORT) {
650650
mmap_params.address = address;
651651
mmap_params.length = len;
652652
mmap_params.field_mask =
@@ -708,7 +708,7 @@ ucc_status_t ucc_tl_ucp_mem_map_offload_import(ucc_tl_ucp_context_t *ctx,
708708
return UCC_OK;
709709
}
710710

711-
ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, ucc_mem_map_type_t type,
711+
ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
712712
ucc_mem_map_memh_t *memh, ucc_mem_map_tl_t *tl_h)
713713
{
714714
ucc_tl_ucp_context_t *ctx = ucc_derived_of(context, ucc_tl_ucp_context_t);
@@ -724,13 +724,13 @@ ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, ucc_mem_map_t
724724
// copy name information for look ups later
725725
strncpy(tl_h->tl_name, "ucp", UCC_MEM_MAP_TL_NAME_LEN - 1);
726726

727-
/* nothing to do for UCC_MEM_MAP_TYPE_OFFLOAD_EXPORT and UCC_MEM_MAP_TYPE_IMPORT */
728-
if (type == UCC_MEM_MAP_TYPE_LOCAL) {
729-
ucc_status = ucc_tl_ucp_mem_map_export(ctx, memh->address, memh->len, type, m_data);
727+
/* nothing to do for UCC_MEM_MAP_MODE_EXPORT_OFFLOAD and UCC_MEM_MAP_MODE_IMPORT */
728+
if (mode == UCC_MEM_MAP_MODE_EXPORT) {
729+
ucc_status = ucc_tl_ucp_mem_map_export(ctx, memh->address, memh->len, mode, m_data);
730730
if (UCC_OK != ucc_status) {
731731
tl_error(ctx->super.super.lib, "failed to export memory handles");
732732
}
733-
} else if (type == UCC_MEM_MAP_TYPE_OFFLOAD_IMPORT) {
733+
} else if (mode == UCC_MEM_MAP_MODE_IMPORT_OFFLOAD) {
734734
ucc_status = ucc_tl_ucp_mem_map_offload_import(ctx, memh->address, memh->len,
735735
m_data, memh, tl_h);
736736
if (UCC_OK != ucc_status) {
@@ -742,7 +742,7 @@ ucc_status_t ucc_tl_ucp_mem_map(const ucc_base_context_t *context, ucc_mem_map_t
742742
return ucc_status;
743743
}
744744

745-
ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_type_t type,
745+
ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map_mode_t mode,
746746
ucc_mem_map_tl_t *memh)
747747
{
748748
ucc_tl_ucp_context_t *ctx = ucc_derived_of(context, ucc_tl_ucp_context_t);
@@ -754,14 +754,14 @@ ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map
754754
}
755755

756756
data = (ucc_tl_ucp_memh_data_t *)memh->tl_data;
757-
if (type == UCC_MEM_MAP_TYPE_LOCAL || type == UCC_MEM_MAP_TYPE_OFFLOAD_EXPORT) {
757+
if (mode == UCC_MEM_MAP_MODE_EXPORT || mode == UCC_MEM_MAP_MODE_EXPORT_OFFLOAD) {
758758
status = ucp_mem_unmap(ctx->worker.ucp_context, data->rinfo.mem_h);
759759
if (status != UCS_OK) {
760760
tl_error(ctx->super.super.lib,
761761
"ucp_mem_unmap failed with error code %d", status);
762762
return ucs_status_to_ucc_status(status);
763763
}
764-
} else if (type == UCC_MEM_MAP_TYPE_GLOBAL || type == UCC_MEM_MAP_TYPE_OFFLOAD_IMPORT) {
764+
} else if (mode == UCC_MEM_MAP_MODE_IMPORT || mode == UCC_MEM_MAP_MODE_IMPORT_OFFLOAD) {
765765
// need to free rkeys (data->rkey) , packed memh (data->packed_memh)
766766
if (data->packed_memh) {
767767
ucp_memh_buffer_release(data->packed_memh, NULL);
@@ -773,14 +773,14 @@ ucc_status_t ucc_tl_ucp_mem_unmap(const ucc_base_context_t *context, ucc_mem_map
773773
ucp_rkey_destroy(data->rkey);
774774
}
775775
} else {
776-
ucc_error("Unknown type entered");
776+
ucc_error("Unknown mem map mode entered: %d", mode);
777777
return UCC_ERR_INVALID_PARAM;
778778
}
779779
return UCC_OK;
780780
}
781781

782782
ucc_status_t ucc_tl_ucp_memh_pack(const ucc_base_context_t *context,
783-
ucc_mem_map_type_t type, ucc_mem_map_tl_t *tl_h,
783+
ucc_mem_map_mode_t mode, ucc_mem_map_tl_t *tl_h,
784784
void **pack_buffer)
785785
{
786786
ucc_tl_ucp_context_t *ctx = ucc_derived_of(context, ucc_tl_ucp_context_t);
@@ -796,7 +796,7 @@ ucc_status_t ucc_tl_ucp_memh_pack(const ucc_base_context_t *context,
796796
tl_error(ctx->super.super.lib, "unable to pack memory handle without TL handles");
797797
return UCC_ERR_INVALID_PARAM;
798798
}
799-
if (type == UCC_MEM_MAP_TYPE_LOCAL) {
799+
if (mode == UCC_MEM_MAP_MODE_EXPORT) {
800800
pack_params.field_mask = UCP_MEMH_PACK_PARAM_FIELD_FLAGS;
801801
pack_params.flags = UCP_MEMH_PACK_FLAG_EXPORT;
802802

@@ -838,14 +838,14 @@ ucc_status_t ucc_tl_ucp_memh_pack(const ucc_base_context_t *context,
838838
*key_size = data->rinfo.packed_key_len;
839839
memh_size = PTR_OFFSET(packed_buffer, sizeof(size_t));
840840
*memh_size = data->packed_memh_len;
841-
memcpy(PTR_OFFSET(packed_buffer, sizeof(size_t) * 2),
841+
memcpy(PTR_OFFSET(packed_buffer, UCC_TL_UCP_MEMH_TL_HEADER_SIZE),
842842
data->rinfo.packed_key, *key_size);
843843
memcpy(PTR_OFFSET(packed_buffer,
844-
sizeof(size_t) * 2 + data->rinfo.packed_key_len),
844+
UCC_TL_UCP_MEMH_TL_HEADER_SIZE + UCC_TL_UCP_MEMH_TL_KEY_SIZE(packed_buffer)),
845845
data->packed_memh, *memh_size);
846846

847847
tl_h->packed_size =
848-
sizeof(size_t) * 2 + data->packed_memh_len + data->rinfo.packed_key_len;
848+
UCC_TL_UCP_MEMH_TL_HEADER_SIZE + data->packed_memh_len + data->rinfo.packed_key_len;
849849
*pack_buffer = packed_buffer;
850850
return ucc_status;
851851

0 commit comments

Comments
 (0)