Skip to content

Commit 9c0bbf1

Browse files
riptlripatel-fd
authored andcommitted
Use 4K page stacks for MSan
1 parent a45df74 commit 9c0bbf1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/disco/topo/fd_topo_run.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,12 @@ fd_topo_tile_stack_join_anon( void ) {
184184
int prot = PROT_READ|PROT_WRITE;
185185
int flags = MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK;
186186

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 ) {
189193
stack = mmap( NULL, sz, prot, flags, -1, 0 );
190194
if( FD_UNLIKELY( stack==MAP_FAILED ) ) {
191195
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 ) {
196200
void * guard_lo = (void *)( stack - FD_SHMEM_NORMAL_PAGE_SZ );
197201
if( FD_UNLIKELY( mmap( guard_lo, FD_SHMEM_NORMAL_PAGE_SZ, PROT_NONE,
198202
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 ) ));
200204

201205
void * guard_hi = (void *)( stack + FD_TILE_PRIVATE_STACK_SZ );
202206
if( FD_UNLIKELY( mmap( guard_hi, FD_SHMEM_NORMAL_PAGE_SZ, PROT_NONE,
203207
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 ) ));
205209

206210
return stack;
207211
}

0 commit comments

Comments
 (0)