Skip to content

Commit b51c8f8

Browse files
committed
btl/vader: fix fragment sizes used by free lists
This commit fixes a bug introduced in f62d26d. That commit changed how vader allocates fragment memory from the shared memory segment. Unfortunately, the values used for the fragment sizes did not include space for the fragment header. This can cause an overrun of data from one fragment to the header of the next fragment. Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
1 parent 352b667 commit b51c8f8

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

opal/mca/btl/vader/btl_vader_module.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
1818
* Copyright (c) 2014-2015 Research Organization for Information Science
1919
* and Technology (RIST). All rights reserved.
20-
* Copyright (c) 2018 Triad National Security, LLC. All rights
20+
* Copyright (c) 2018-2019 Triad National Security, LLC. All rights
2121
* reserved.
2222
* $COPYRIGHT$
2323
*
@@ -117,8 +117,8 @@ static int vader_btl_first_time_init(mca_btl_vader_t *vader_btl, int n)
117117
rc = opal_free_list_init (&component->vader_frags_user,
118118
sizeof(mca_btl_vader_frag_t),
119119
opal_cache_line_size, OBJ_CLASS(mca_btl_vader_frag_t),
120-
mca_btl_vader_component.max_inline_send, opal_cache_line_size,
121-
component->vader_free_list_num,
120+
mca_btl_vader_component.max_inline_send + sizeof (mca_btl_vader_frag_t),
121+
opal_cache_line_size, component->vader_free_list_num,
122122
component->vader_free_list_max,
123123
component->vader_free_list_inc,
124124
component->mpool, 0, NULL, mca_btl_vader_frag_init,
@@ -131,8 +131,8 @@ static int vader_btl_first_time_init(mca_btl_vader_t *vader_btl, int n)
131131
rc = opal_free_list_init (&component->vader_frags_eager,
132132
sizeof (mca_btl_vader_frag_t),
133133
opal_cache_line_size, OBJ_CLASS(mca_btl_vader_frag_t),
134-
mca_btl_vader.super.btl_eager_limit, opal_cache_line_size,
135-
component->vader_free_list_num,
134+
mca_btl_vader.super.btl_eager_limit + sizeof (mca_btl_vader_frag_t),
135+
opal_cache_line_size, component->vader_free_list_num,
136136
component->vader_free_list_max,
137137
component->vader_free_list_inc,
138138
component->mpool, 0, NULL, mca_btl_vader_frag_init,
@@ -146,8 +146,8 @@ static int vader_btl_first_time_init(mca_btl_vader_t *vader_btl, int n)
146146
rc = opal_free_list_init (&component->vader_frags_max_send,
147147
sizeof (mca_btl_vader_frag_t),
148148
opal_cache_line_size, OBJ_CLASS(mca_btl_vader_frag_t),
149-
mca_btl_vader.super.btl_max_send_size, opal_cache_line_size,
150-
component->vader_free_list_num,
149+
mca_btl_vader.super.btl_max_send_size + sizeof (mca_btl_vader_frag_t),
150+
opal_cache_line_size, component->vader_free_list_num,
151151
component->vader_free_list_max,
152152
component->vader_free_list_inc,
153153
component->mpool, 0, NULL, mca_btl_vader_frag_init,

0 commit comments

Comments
 (0)