Commit b29f763e authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

r18850@catbus: nickm | 2008-03-16 22:35:38 -0400

 Use 8k pages in openbsd malloc code on alpha. Bug and solution found by weasel.  Also, when initializing openbsd malloc code, check that compiled page size matches output of getpagesize().


svn:r14056
parent db4fccef
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,10 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
    - Use proper log levels in the testsuite call of get_interface_address6().
    - When using a nonstandard malloc, do not use the platform values for
      HAVE_MALLOC_GOOD_SIZE or HAVE_MALLOC_USABLE_SIZE.
    - Make the openbsd malloc code use 8k pages on alpha CPUs.  Bugfix on
      0.2.0.x.
    - Detect mismatched page sizes when using --enable-openbsd-malloc.
      Bugfix on 0.2.0.x.

  o Minor features:
    - Allow separate log levels to be configured for different logging
+8 −1
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER;
#define _MALLOC_LOCK() {pthread_mutex_lock(&gen_mutex);}
#define _MALLOC_UNLOCK() {pthread_mutex_unlock(&gen_mutex);}

#if defined(__sparc__)
#if defined(__sparc__) || defined(__alpha__)
#define	malloc_pageshift	13U
#endif /* __sparc__ */

@@ -787,6 +787,13 @@ malloc_init(void)
		    "  Will not be able to dump malloc stats on exit");
#endif /* MALLOC_STATS */

	if (malloc_pagesize != getpagesize()) {
		wrterror("malloc() replacement compiled with a different "
			 "page size from what we're running with.  Failing.");
		errno = ENOMEM;
		return;
	}

	/* Allocate one page for the page directory. */
	page_dir = (struct pginfo **)MMAP(malloc_pagesize);