diff mbox series

[RFC,6/9] mach: Use PAGE_SIZE

Message ID 20230218203717.373211-7-bugaevc@gmail.com
State New
Headers show
Series More x86_64-gnu glibc work | expand

Commit Message

Sergey Bugaev Feb. 18, 2023, 8:37 p.m. UTC
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>
---
 mach/mach_init.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Samuel Thibault Feb. 19, 2023, 11:47 p.m. UTC | #1
Applied, thanks!

Sergey Bugaev, le sam. 18 févr. 2023 23:37:14 +0300, a ecrit:
> 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>
> ---
>  mach/mach_init.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/mach/mach_init.c b/mach/mach_init.c
> index a0d9f7f5..42b9cacf 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
> -- 
> 2.39.2
> 
>
diff mbox series

Patch

diff --git a/mach/mach_init.c b/mach/mach_init.c
index a0d9f7f5..42b9cacf 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