in isomalloc, use getpagesize to determin page size instead of using CMK_MEMORY_PAGES...
authorGengbin Zheng <gzheng@illinois.edu>
Thu, 1 Apr 2010 21:59:52 +0000 (16:59 -0500)
committerGengbin Zheng <gzheng@illinois.edu>
Thu, 1 Apr 2010 21:59:52 +0000 (16:59 -0500)
getpagesize is tested in configure.

src/conv-core/isomalloc.c
src/scripts/configure
src/scripts/configure.in
src/scripts/conv-autoconfig.h.in

index 8c8a16c7920fb5b54fb606a8907a114f62d41110..93792e832616ff32d902fe458d18067b178ce4e2 100644 (file)
@@ -1947,10 +1947,16 @@ static void init_ranges(char **argv)
   memRegion_t freeRegion;
   /*Largest value a signed int can hold*/
   memRange_t intMax=(((memRange_t)1)<<(sizeof(int)*8-1))-1;
+  int pagesize = 0;
 
   /*Round slot size up to nearest page size*/
   slotsize=16*1024;
-  slotsize=(slotsize+CMK_MEMORY_PAGESIZE-1) & ~(CMK_MEMORY_PAGESIZE-1);
+#if CMK_HAS_GETPAGESIZE
+  pagesize = getpagesize();
+#endif
+  if (pagesize < CMK_MEMORY_PAGESIZE)
+    pagesize = CMK_MEMORY_PAGESIZE;
+  slotsize=(slotsize+pagesize-1) & ~(pagesize-1);
 #if CMK_THREADS_DEBUG
   CmiPrintf("[%d] Using slotsize of %d\n", CmiMyPe(), slotsize);
 #endif
index 232cb4c0c778bb6619e2eab5d0dfeb612e6b570e..adc7cbeddc9746e8c074a123b1896b7f4899fcd2 100755 (executable)
@@ -2622,13 +2622,28 @@ void foo(void) {
   poll(pos, 1, 1);
 }
 EOT
-test_cxx "whether poll() syscall exists" "yes" "no" ""
+test_cxx "whether has poll" "yes" "no" ""
 
 cat >>confdefs.h <<_ACEOF
 #define CMK_USE_POLL $pass
 _ACEOF
 
 
+#### check if getpagesize exists ####
+cat > $tc <<EOT
+#include <unistd.h>
+
+int main(int argc, char **argv) {
+    int s = getpagesize();
+}
+EOT
+test_linkc "whether has getpagesize" "yes" "no" ""
+
+cat >>confdefs.h <<_ACEOF
+#define CMK_HAS_GETPAGESIZE $pass
+_ACEOF
+
+
 #### check if getpid exists ####
 cat > $tc <<EOT
 #include <sys/types.h>
@@ -2638,7 +2653,7 @@ int main(int argc, char **argv) {
     pid_t pid = getpid();
 }
 EOT
-test_linkc "whether getpid() exists" "yes" "no" ""
+test_linkc "whether has getpid" "yes" "no" ""
 
 cat >>confdefs.h <<_ACEOF
 #define CMK_HAS_GETPID $pass
@@ -2657,7 +2672,7 @@ int main(int argc, char**argv)
     kill(pid, 9);
 }
 EOT
-test_linkc "whether kill() exists" "yes" "no" ""
+test_linkc "whether has kill" "yes" "no" ""
 
 cat >>confdefs.h <<_ACEOF
 #define CMK_HAS_KILL $pass
@@ -2672,7 +2687,7 @@ void foo(void) {
   setpriority(PRIO_PROCESS, 0, 0);
 }
 EOT
-test_cxx "whether setpriority() exists" "yes" "no" ""
+test_cxx "whether has setpriority" "yes" "no" ""
 
 cat >>confdefs.h <<_ACEOF
 #define CMK_HAS_SETPRIORITY $pass
index da641acecc0880387bc0b976614994b5aeff6948..541da097bea7dd7f8a33673cea3ef1254aef738c 100644 (file)
@@ -818,8 +818,19 @@ void foo(void) {
   poll(pos, 1, 1);
 }
 EOT
-test_cxx "whether poll() syscall exists" "yes" "no" ""
-AC_DEFINE_UNQUOTED(CMK_USE_POLL, $pass, [whether the poll() syscall exists])
+test_cxx "whether has poll" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_USE_POLL, $pass, [whether the poll syscall exists])
+
+#### check if getpagesize exists ####
+cat > $tc <<EOT
+#include <unistd.h>
+
+int main(int argc, char **argv) {
+    int s = getpagesize();
+}
+EOT
+test_linkc "whether has getpagesize" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_HAS_GETPAGESIZE, $pass, [whether getpagesize exists])
 
 #### check if getpid exists ####
 cat > $tc <<EOT
@@ -830,8 +841,8 @@ int main(int argc, char **argv) {
     pid_t pid = getpid();
 }
 EOT
-test_linkc "whether getpid() exists" "yes" "no" ""
-AC_DEFINE_UNQUOTED(CMK_HAS_GETPID, $pass, [whether getpid() exists])
+test_linkc "whether has getpid" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_HAS_GETPID, $pass, [whether getpid exists])
 
 #### check if kill exists ####
 cat > $tc <<EOT
@@ -845,8 +856,8 @@ int main(int argc, char**argv)
     kill(pid, 9);
 }
 EOT
-test_linkc "whether kill() exists" "yes" "no" ""
-AC_DEFINE_UNQUOTED(CMK_HAS_KILL, $pass, [whether kill() exists])
+test_linkc "whether has kill" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_HAS_KILL, $pass, [whether kill exists])
 
 #### test for setpriority ###
 cat > $t <<EOT
@@ -856,8 +867,8 @@ void foo(void) {
   setpriority(PRIO_PROCESS, 0, 0);
 }
 EOT
-test_cxx "whether setpriority() exists" "yes" "no" ""
-AC_DEFINE_UNQUOTED(CMK_HAS_SETPRIORITY, $pass, [whether the setpriority() exists])
+test_cxx "whether has setpriority" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_HAS_SETPRIORITY, $pass, [whether the setpriority exists])
 
 #### test for system ###
 cat > $t <<EOT
index 81726ba1f7ceff5d8c4c7c2a7bef262b6d759842..b9ecef258c4798f1a9edd91bc47ed19e4b987222 100644 (file)
 /* whether gethostname() exists */
 #undef CMK_HAS_GETHOSTNAME
 
-/* whether getpid() exists */
+/* whether getpagesize exists */
+#undef CMK_HAS_GETPAGESIZE
+
+/* whether getpid exists */
 #undef CMK_HAS_GETPID
 
 /* whether get_myaddress() exists */
@@ -93,7 +96,7 @@
 /* whether iterator_traits works */
 #undef CMK_HAS_ITERATOR_TRAITS
 
-/* whether kill() exists */
+/* whether kill exists */
 #undef CMK_HAS_KILL
 
 /* whether has log2 */
 /* whether the sched_setaffinity() exists */
 #undef CMK_HAS_SETAFFINITY
 
-/* whether the setpriority() exists */
+/* whether the setpriority exists */
 #undef CMK_HAS_SETPRIORITY
 
 /* whether has sleep */
 /* whether has mkstemp */
 #undef CMK_USE_MKSTEMP
 
-/* whether the poll() syscall exists */
+/* whether the poll syscall exists */
 #undef CMK_USE_POLL
 
 /* whether the std:: names for STL work */