about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-02-18 23:37:14 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-20 00:46:36 +0100
commitbe318c0f38b6b72a0716edce818b755411e75600 (patch)
tree76b241932008ccd83f8b8e067a11c99a36b93846
parent90ab316b02d496cfaf09396fcc0c9bc58f15a61c (diff)
downloadglibc-be318c0f38b6b72a0716edce818b755411e75600.tar.gz
glibc-be318c0f38b6b72a0716edce818b755411e75600.tar.xz
glibc-be318c0f38b6b72a0716edce818b755411e75600.zip
mach: Use PAGE_SIZE
The PAGE_SIZE from the Mach headers statically defines the machine's
page size. There's no need to query it dynamically; furthermore, the
implementation of the vm_statistics () RPC unconditionally fills in

pagesize = PAGE_SIZE;

Not doing the extra RPC shaves off 2 RPCs from the start-up of every
process!

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230218203717.373211-7-bugaevc@gmail.com>
-rw-r--r--mach/mach_init.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mach/mach_init.c b/mach/mach_init.c
index a0d9f7f5e2..42b9cacf68 100644
--- a/mach/mach_init.c
+++ b/mach/mach_init.c
@@ -17,6 +17,7 @@
 
 #include <mach.h>
 #include <mach/mig_support.h>
+#include <mach/vm_param.h>
 #include <unistd.h>
 
 mach_port_t __mach_task_self_;
@@ -38,7 +39,10 @@ __mach_init (void)
   __mach_host_self_ = (__mach_host_self) ();
   __mig_init (0);
 
-#ifdef HAVE_HOST_PAGE_SIZE
+#ifdef PAGE_SIZE
+  __vm_page_size = PAGE_SIZE;
+  (void) err;
+#elif defined (HAVE_HOST_PAGE_SIZE)
   if (err = __host_page_size (__mach_host_self (), &__vm_page_size))
     _exit (err);
 #else