Commit graph

3609 commits

Author SHA1 Message Date
Carl Shapiro
2ffb17fd3e Replace an instance of indentation with spaces with tabs 2026-03-05 12:47:23 -08:00
Aurélien Brooke
97cb029f9b Add missing thread_event_registry.c to Visual Studio projects
This file was added by b2a35a905f.
2026-03-05 12:47:23 -08:00
lexprfuncall
57e971c108 Update config.guess and config.sub to the latest versions. Closes #2735 and closes #2814.
These files need to be refreshed periodically to support new platform
types.

The following command was used to retrieve the updates

curl -L -O https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
curl -L -O https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
2026-03-05 12:46:12 -08:00
Carl Shapiro
2cc7f4506e Always use pthread_equal to compare thread IDs
This change replaces direct comparisons of Pthread thread IDs with
calls to pthread_equal.  Directly comparing thread IDs is neither
portable nor reliable since a thread ID is defined as an opaque type
that can be implemented using a structure.
2026-03-05 12:46:12 -08:00
Slobodan Predolac
bf38507ec8 Remove pidfd_open call handling and rely on PIDFD_SELF 2026-03-05 12:46:12 -08:00
lexprfuncall
e70a50f9e4 Change the default page size to 64KiB on Aarch64 Linux. Closes #2639.
This updates the configuration script to set the default page size to
64KiB on Aarch64 Linux.  This is motivated by compatibility as a build
configured for a 64KiB page will work on kernels that use the smaller
4KiB or 16KiB pages, whereas the reverse is not true.

To make the configured page size setting more visible, the script now
displays the page size when printing the configuration results.

Users that want to override the page size in to choose a smaller value
can still do so with the --with-lg-pagesize configuration option.
2026-03-05 12:45:37 -08:00
Slobodan Predolac
8a86a12a83 [EASY][BUGFIX] Spelling and format 2026-03-05 12:45:36 -08:00
lexprfuncall
e6d2c31ed3 Define malloc_{write,read}_fd as non-inline global functions
The static inline definition made more sense when these functions just
dispatched to a syscall wrapper.  Since they acquired a retry loop, a
non-inline definition makes more sense.
2026-03-05 12:45:36 -08:00
lexprfuncall
8a231568f9 Handle interruptions and retries of read(2) and write(2) 2026-03-05 12:45:36 -08:00
lexprfuncall
e74d9fb73d Remove an orphaned comment
This was left behind when definitions of malloc_open and malloc_close
were abstracted from code that had followed.
2026-03-05 12:45:36 -08:00
Shirui Cheng
1472042a5f Revert PR #2608: Manually revert commits 70c94d..f9c0b5 2026-03-05 12:45:36 -08:00
lexprfuncall
17ac1eee7d Fix the compilation check for process madvise
An include of unistd.h is needed to make the declaration of the
syscall function visible to the compiler.  The include of sys/mman.h
is not used at all.
2026-03-05 12:45:36 -08:00
Slobodan Predolac
7c1cecc0d2 Save and restore errno when calling process_madvise 2026-03-05 12:45:36 -08:00
lexprfuncall
868a3b3fd6 Remove an unused function and global variable
When the dehugify functionality was retired in an previous commit, a
dehugify-related function and global variable in a test was
accidentally left in-place causing builds that add -Werror to CFLAGS
to fail.
2026-03-05 12:45:36 -08:00
Slobodan Predolac
ccd4c15a3c Experimental configuration option for fast path prefetch from cache_bin 2026-03-05 12:45:36 -08:00
lexprfuncall
4c9ec34dc8 Use relaxed atomics to access the process madvise pid fd
Relaxed atomics already provide sequentially consistent access to single
location data structures.
2026-03-05 12:45:36 -08:00
lexprfuncall
9bd26fc9f5 Do not dehugify when purging
Giving the advice MADV_DONTNEED to a range of virtual memory backed by
a transparent huge page already causes that range of virtual memory to
become backed by regular pages.
2026-03-05 12:45:36 -08:00
lexprfuncall
965b3a1130 Fix several spelling errors in comments 2026-03-05 12:45:36 -08:00
Slobodan Predolac
dc2c0276e8 [process_madvise] Make init lazy so that python tests pass. Reset the pidfd on fork 2026-03-05 12:45:36 -08:00
Slobodan Predolac
07a3742f72 Add several USDT probes for hpa 2026-03-05 12:45:36 -08:00
Slobodan Predolac
3832502bed Add experimental support for usdt systemtap probes 2026-03-05 12:45:36 -08:00
guangli-dai
d85d651995 Ignore the clang-format changes in the git blame. 2026-03-05 12:45:36 -08:00
guangli-dai
6206ffb9a8 Reformat the codebase with the clang-format 18. 2026-03-05 12:45:36 -08:00
Shirui Cheng
030921c64d Update the default value for opt_experimental_tcache_gc and opt_calloc_madvise_threshold 2026-03-05 12:45:36 -08:00
Guangli Dai
85e8400820 Remove --enable-limit-usize-gap for cirrus CI since the config-time option is removed. 2026-03-05 12:45:36 -08:00
guangli-dai
da143c460b Update appveyor settings. 2026-03-05 12:45:36 -08:00
dzhao.ampere
6fa3372872 test/unit/psset.c: fix SIGSEGV when PAGESIZE is large. Closes #2408
When hugepage is enabled and PAGESIZE is large, the test could
ask for a stack size larger than user limit. Allocating the
memory instead can avoid the failure.
2026-03-05 12:44:00 -08:00
Slobodan Predolac
1a9f5d237e [thread_event] Add support for user events in thread events when stats are enabled 2026-03-04 16:22:36 -08:00
Slobodan Predolac
153fab2b00 [thread_event] Remove macros from thread_event and replace with dynamic event objects 2026-03-04 16:22:36 -08:00
Qi Wang
1972241cd2 Remove unused options in the batched madvise unit tests. 2025-06-02 11:25:37 -07:00
Jason Evans
27d7960cf9 Revert "Extend purging algorithm with peak demand tracking"
This reverts commit ad108d50f1.
2025-06-02 10:44:37 -07:00
guangli-dai
edaab8b3ad Turn clang-format off for codes with multi-line commands in macros 2025-05-28 19:22:21 -07:00
guangli-dai
4531411abe Modify .clang-format to have declarations aligned 2025-05-28 19:22:21 -07:00
guangli-dai
1818170c8d Fix binshard.sh by specifying bin_shards for all sizes. 2025-05-28 19:21:49 -07:00
guangli-dai
fd60645260 Add one more check to double free validation. 2025-05-28 19:21:49 -07:00
Xin Yang
5e460bfea2 Refactor: use the cache_bin_sz_t typedef instead of direct uint16_t
any future changes to the underlying data type for bin sizes
(such as upgrading from `uint16_t` to `uint32_t`) can be achieved
by modifying only the `cache_bin_sz_t` definition.

Signed-off-by: Xin Yang <yangxin.dev@bytedance.com>
2025-05-22 10:43:33 -07:00
Xin Yang
9169e9272a Fix: Adjust CACHE_BIN_NFLUSH_BATCH_MAX size to prevent assert failures
The maximum allowed value for `nflush_batch` is
`CACHE_BIN_NFLUSH_BATCH_MAX`. However, `tcache_bin_flush_impl_small`
could potentially declare an array of `emap_batch_lookup_result_t`
of size `CACHE_BIN_NFLUSH_BATCH_MAX + 1`. leads to a `VARIABLE_ARRAY`
assertion failure, observed when `tcache_nslots_small_max` is
configured to 2048. This patch ensures the array size does not exceed
the allowed maximum.

Signed-off-by: Xin Yang <yangxin.dev@bytedance.com>
2025-05-22 10:27:09 -07:00
guangli-dai
f19a569216 Ignore formatting commit in blame. 2025-05-20 14:21:08 -07:00
Slobodan Predolac
b6338c4ff6 EASY - be explicit in non-vectorized hpa tests 2025-05-19 16:31:04 -07:00
guangli-dai
554185356b Sample format on tcache_max test 2025-05-19 15:06:13 -07:00
guangli-dai
3cee771cfa Modify .clang-format to make it more aligned with current freebsd style 2025-05-19 15:06:13 -07:00
Jiebin Sun
3c14707b01 To improve reuse efficiency, the maximum coalesced size for large extents
in the dirty ecache has been limited. This patch was tested with real
workloads using ClickHouse (Clickbench Q35) on a system with 2x240 vCPUs.
The results showed a 2X in query per second (QPS) performance and
a reduction in page faults to 29% of the previous rate. Additionally,
microbenchmark testing involved 256 memory reallocations resizing
from 4KB to 16KB in one arena, which demonstrated a 5X performance
improvement.

Signed-off-by: Jiebin Sun <jiebin.sun@intel.com>
2025-05-12 15:45:36 -07:00
guangli-dai
37bf846cc3 Fixes to prevent static analysis warnings. 2025-05-06 14:47:35 -07:00
guangli-dai
8347f1045a Renaming limit_usize_gap to disable_large_size_classes 2025-05-06 14:47:35 -07:00
Guangli Dai
01e9ecbeb2 Remove build-time configuration 'config_limit_usize_gap' 2025-05-06 14:47:35 -07:00
Slobodan Predolac
852da1be15 Add experimental option force using SYS_process_madvise 2025-04-28 18:45:30 -07:00
Slobodan Predolac
1956a54a43 [process_madvise] Use process_madvise across multiple huge_pages 2025-04-25 19:19:03 -07:00
Slobodan Predolac
0dfb4a5a1a Add output argument to hpa_purge_begin to count dirty ranges 2025-04-25 19:19:03 -07:00
Slobodan Predolac
cfa90dfd80 Refactor hpa purging to prepare for vectorized call across multiple pages 2025-04-25 19:19:03 -07:00
Qi Wang
a3910b9802 Avoid forced purging during thread-arena migration when bg thd is on. 2025-04-25 19:18:20 -07:00