diff options
author | Piotr Sikora <piotr@aviatrix.com> | 2024-02-26 20:00:40 +0000 |
---|---|---|
committer | Piotr Sikora <piotr@aviatrix.com> | 2024-02-26 20:00:40 +0000 |
commit | 1bc19fe2db3afc7a72eb0a91e554aee9160e0d00 (patch) | |
tree | 56705869fee3caeff386a8102dc16caa07753957 /src/os/unix/ngx_darwin_init.c | |
parent | 818f98da1c46785bc23a99efff653febb1e35ac2 (diff) | |
download | nginx-1bc19fe2db3afc7a72eb0a91e554aee9160e0d00.tar.gz nginx-1bc19fe2db3afc7a72eb0a91e554aee9160e0d00.zip |
Detect cache line size at runtime on macOS.
Notably, Apple Silicon CPUs have 128 byte cache line size,
which is twice the default configured for generic aarch64.
Signed-off-by: Piotr Sikora <piotr@aviatrix.com>
Diffstat (limited to 'src/os/unix/ngx_darwin_init.c')
-rw-r--r-- | src/os/unix/ngx_darwin_init.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/os/unix/ngx_darwin_init.c b/src/os/unix/ngx_darwin_init.c index aabe02ff9..70748ee57 100644 --- a/src/os/unix/ngx_darwin_init.c +++ b/src/os/unix/ngx_darwin_init.c @@ -9,11 +9,12 @@ #include <ngx_core.h> -char ngx_darwin_kern_ostype[16]; -char ngx_darwin_kern_osrelease[128]; -int ngx_darwin_hw_ncpu; -int ngx_darwin_kern_ipc_somaxconn; -u_long ngx_darwin_net_inet_tcp_sendspace; +char ngx_darwin_kern_ostype[16]; +char ngx_darwin_kern_osrelease[128]; +int ngx_darwin_hw_ncpu; +int ngx_darwin_kern_ipc_somaxconn; +u_long ngx_darwin_net_inet_tcp_sendspace; +int64_t ngx_darwin_hw_cachelinesize; ngx_uint_t ngx_debug_malloc; @@ -56,6 +57,10 @@ sysctl_t sysctls[] = { &ngx_darwin_kern_ipc_somaxconn, sizeof(ngx_darwin_kern_ipc_somaxconn), 0 }, + { "hw.cachelinesize", + &ngx_darwin_hw_cachelinesize, + sizeof(ngx_darwin_hw_cachelinesize), 0 }, + { NULL, NULL, 0, 0 } }; @@ -155,6 +160,7 @@ ngx_os_specific_init(ngx_log_t *log) return NGX_ERROR; } + ngx_cacheline_size = ngx_darwin_hw_cachelinesize; ngx_ncpu = ngx_darwin_hw_ncpu; if (ngx_darwin_kern_ipc_somaxconn > 32767) { |