@@ -184,8 +184,12 @@ fd_topo_tile_stack_join_anon( void ) {
184
184
int prot = PROT_READ |PROT_WRITE ;
185
185
int flags = MAP_PRIVATE |MAP_ANONYMOUS |MAP_STACK ;
186
186
187
- uchar * stack = mmap ( NULL , sz , prot , flags |MAP_HUGETLB , -1 , 0 );
188
- if ( FD_UNLIKELY ( stack == MAP_FAILED ) ) {
187
+ uchar * stack = MAP_FAILED ;
188
+ #if !FD_HAS_ASAN && !FD_HAS_MSAN
189
+ stack = mmap ( NULL , sz , prot , flags |MAP_HUGETLB , -1 , 0 );
190
+ #endif
191
+
192
+ if ( stack == MAP_FAILED ) {
189
193
stack = mmap ( NULL , sz , prot , flags , -1 , 0 );
190
194
if ( FD_UNLIKELY ( stack == MAP_FAILED ) ) {
191
195
FD_LOG_ERR (( "mmap() for stack failed (%i-%s)" , errno , fd_io_strerror ( errno ) ));
@@ -196,12 +200,12 @@ fd_topo_tile_stack_join_anon( void ) {
196
200
void * guard_lo = (void * )( stack - FD_SHMEM_NORMAL_PAGE_SZ );
197
201
if ( FD_UNLIKELY ( mmap ( guard_lo , FD_SHMEM_NORMAL_PAGE_SZ , PROT_NONE ,
198
202
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED , -1 , (off_t )0 )!= guard_lo ) )
199
- FD_LOG_ERR (( "mmap failed (%i-%s)" , errno , fd_io_strerror ( errno ) ));
203
+ FD_LOG_ERR (( "mmap(%p) failed (%i-%s)" , guard_lo , errno , fd_io_strerror ( errno ) ));
200
204
201
205
void * guard_hi = (void * )( stack + FD_TILE_PRIVATE_STACK_SZ );
202
206
if ( FD_UNLIKELY ( mmap ( guard_hi , FD_SHMEM_NORMAL_PAGE_SZ , PROT_NONE ,
203
207
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED , -1 , (off_t )0 )!= guard_hi ) )
204
- FD_LOG_ERR (( "mmap failed (%i-%s)" , errno , fd_io_strerror ( errno ) ));
208
+ FD_LOG_ERR (( "mmap(%p) failed (%i-%s)" , guard_hi , errno , fd_io_strerror ( errno ) ));
205
209
206
210
return stack ;
207
211
}
0 commit comments