Commit graph

70 commits

Author SHA1 Message Date
daanx
6bfb1c656c allow size==0 for mi_prim_free (issue #1041) 2025-05-02 08:40:21 -07:00
Daan
951538d469 fix prctl.h includes for alpine linux/musl (hopefully fixes #1065, #1066, #1067) 2025-04-08 13:56:31 -07:00
Daan
77b622511a fix alpine compilation with prctl.h (issue #1059) 2025-03-31 14:44:46 -07:00
Daan
6ed451c555 fix linux compile by including linux/prctl.h 2025-03-21 16:48:50 -07:00
Daan
01ee3568c1 name anonymous mmap address ranges for debugging on Linux (based on PR #1032 by @zhuker) 2025-03-21 16:19:54 -07:00
Daan
783c3ba486 improve QNX support 2025-03-06 20:40:52 -08:00
Timothy Kielan
c8880e1ba0
support building for QNX 2025-02-21 15:16:22 +01:00
Daan
566ab5038b do not use syscall on android (issue #1015) 2025-02-18 16:02:52 -08:00
daanx
0c8069adab use physical memory in kib to avoid overflow of size_t (issue #1010) 2025-02-11 09:18:23 -08:00
daanx
ec4aa62b65 use physical memory in kib to avoid overflow of size_t (issue #1010) 2025-02-11 09:12:29 -08:00
Daan Leijen
2451b5685c fix large OS page behaviour on Linux; default is now 2 which only uses large OS pages (not huge) through madvise 2025-01-03 20:00:40 -08:00
Daan
b5ef802313
Merge pull request #909 from kdrag0n/patch-1
Change macOS mmap tag to fix conflict with IOAccelerator
2024-12-30 12:30:21 -08:00
Daan
f33aa58d88
Merge branch 'dev' into dev 2024-12-30 12:27:46 -08:00
Daan
e05aae944f
Merge pull request #917 from rui314/missing-include
Add a missing #include
2024-12-30 12:20:08 -08:00
daanx
0e76fe3798 add address hint to primitive allocation API 2024-11-16 16:57:37 -08:00
daanx
b27d154ffd add virtual address bits and physical memory to the mem config 2024-11-16 15:37:08 -08:00
daanx
b5c6495f69 don't consider memory as large OS pages if only madvise'd 2024-08-20 15:58:36 -07:00
Rui Ueyama
566b2c51fc Add a missing #include
This change fixes the "implicit declaration of function 'getenv'" warning.
Since stdlib.h is completely portable, as it is defined by the C standard,
we can safely include it unconditionally.
2024-07-22 09:43:43 +09:00
QuarticCat
632421da3a
fix typos 2024-06-19 10:49:03 +08:00
Danny Lin
e8b5e51b00
Change macOS mmap tag to fix conflict with IOAccelerator
Tag 100 is assigned to "IOAccelerator" (the GPU driver stack on Apple silicon), which makes for confusing output when debugging.

To avoid conflicts, use a tag in the reserved application-specific range from 240–255 (inclusive).

All assigned tags: 94d3b45284/osfmk/mach/vm_statistics.h (L773-L775)
2024-06-10 15:06:39 -07:00
daanx
e4c8f42bb6 always include sys/prctl.h on linux to disable THP if large_os_pages are not enabled 2024-06-02 16:10:08 -07:00
Daan Leijen
f93fb900b7 move lock code to atomic.h 2024-06-01 17:25:45 -07:00
Daan Leijen
0b3cd51249 add initial primitive api for locks 2024-06-01 16:45:20 -07:00
daanx
92a8268fa4 make warning an trace message if we cannot allocate at a hinted address, upstream of python/cpython#113372 2024-05-18 16:45:23 -07:00
daanx
999b31fea6 allow syscall include on FreeBSD as well 2024-05-18 16:39:04 -07:00
daanx
87c4012f13 make syscall test in primitives positive and avoid unused function warnings. upstream python/cpython#111907, python/cpython#111593, python/cpython#117548 2024-05-18 16:37:40 -07:00
daanx
d9441ffce2 fix compilation on AIX, upstream of python/cpython#111593 2024-05-18 16:16:36 -07:00
Daan
a38c8dd0f9 rename must_free_whole -> has_partial_free 2024-05-16 14:41:10 -07:00
Daan
79ab7c63d7 disable transparent huge pages for a process too if the allow_large_os_pages option is set to false 2024-04-20 16:37:09 -07:00
Daan
764aa44598 remove macOS preprocessor macros that do not exist (anymore). issue #879 2024-04-19 09:38:40 -07:00
Daan
2473676e18 further fixes to macOS version checks by ensuring MAC_OS_X_VERSION_10_7 is always defined (issue #829) 2024-03-03 09:54:49 -08:00
Daan
cca3fc26b0 fix macOS version checks, issues #829 2024-03-03 08:41:25 -08:00
Daan
128c7c1876 cleanup thp disable a bit 2024-03-02 16:55:13 -08:00
Daan
182583d3dd
Merge branch 'dev' into dev_thp_disable 2024-03-02 16:49:27 -08:00
Daan
3fe3d540b6 Fix incorrect MAP_HUGE_1GB check #793 2024-03-02 15:57:54 -08:00
Daan
7b398ad924 delete pthread key at shutdown, PR #810 by @jkriegshauser 2024-03-02 15:51:51 -08:00
Daan
b7d44378bb avoid unused function warning on Solaris, PR #830 by @kulikjak 2024-03-02 15:32:35 -08:00
Daan
98abfe042c avoid syscall on openBSD, issue #821 by @blackgnezdo 2024-03-02 15:08:22 -08:00
Daan
bccf10e164 allow random fallback on older macOS versions, issue #829 2024-03-02 14:49:37 -08:00
Daan
89afa14045 fix build on illumos; by @dancrossnyc, issue #841 2024-03-02 14:25:16 -08:00
David Carlier
388d1aa9bd new Linux/Android option proposal.
Allowing to disable transparent huge pages on Linux/Android, so
we avoid affecting the whole system (such as /sys/kernel/mm/transparent_hugepage/enabled).
2023-07-14 21:55:30 +01:00
daanx
e10467f673 add libc primitives to reduce dependencies 2023-05-19 11:57:10 -07:00
daanx
0bb5cecbc2 use most performant reset on Linux (MADV_FREE) and Windows (MEM_RESET) as we use the precise decommit by default for purging anyways 2023-04-24 08:56:42 -07:00
daanx
88a8b13782 revise unix decommit 2023-04-23 20:53:27 -07:00
daanx
bfe2651ec9 revise decommit on linux in debug/secure mode 2023-04-23 20:32:22 -07:00
daanx
7f93bf02c9 be explicit about memory tracking in os.c 2023-04-23 16:40:01 -07:00
daanx
012f716485 add is_zero flag to prim_commit 2023-04-21 10:37:22 -07:00
daanx
4d976270eb review is_zero flag 2023-04-18 17:18:39 -07:00
daanx
a8c581059b Merge branch 'dev' into dev-reset 2023-04-17 09:48:58 -07:00
daanx
8027fcfecd Merge branch 'dev' into dev-reset 2023-04-15 17:59:01 -07:00