Commit Graph

511 Commits

Author SHA1 Message Date
paulip1792 a2c3b0f8af add option to reserve huge os pages at a specific numa node. 2021-08-10 16:30:44 +08:00
bmalrat 30be78d97a Fixed typo in headers 2021-08-04 17:31:48 -04:00
Jim Huang 4369fe4323 Eliminate preprocessor warnings due to undefined "__GNUC__" with ClangCL
When building some code against mimalloc with C inside Visual Studio
with ClangCL, the compiler complains about __GNUC__ being undefined.

Reported by Mojca Miklavec.

Close #422
2021-06-24 17:29:06 +08:00
hank 1c1571742d fix typo 2021-06-21 22:36:47 +08:00
Daan Leijen 728be93977 fix for #414 making numa node count atomic 2021-06-17 19:38:51 -07:00
Daan Leijen a83bca72b3 fixes for M1; disable interpose use zones; fix pedantic warnings 2021-06-17 19:15:09 -07:00
Daan Leijen aeb62c2711 fix double quote includes 2021-06-07 16:50:31 -07:00
Daan Leijen 4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
2021-06-07 16:47:57 -07:00
Daan Leijen 1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Jim Huang 0f57425f80 Distinguish SI and Binary Prefixes
SI prefixes [the decimal prefixes] refer strictly to powers of 10. They
should not be used to indicate powers of 2. e.g., one kilobit
represents 1000 bits instead of 1024 bits. IEC 60027‐2 symbols are
formed adding a "i" to the SI symbol (e.g. G + i = Gi).
2021-05-30 20:13:28 +08:00
Jim Huang 5940d3bcce Bump copyright date
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
Daan 766f1f9345 Merge pull request #388 from nico-abram/patch-2
Fix typo in comment
2021-04-22 10:34:13 -07:00
Daan f941015928 Merge pull request #384 from kdrag0n/fix-android-thread-id
Fix thread ID getter on Android ARM/AArch64
2021-04-22 10:33:53 -07:00
Jim Huang 3402c6cc3f Revise the use of macOS predefined macro
Quoted from "Porting UNIX/Linux Applications to OS X,"[1]
* macro __MACH__ is defined if Mach system calls are supported;
* macro __APPLE__ is defined in any Apple computer.

__MACH__ is not specific to macOS since GNU/Hurd runs on a Mach-based
microkernel (gnumach) [2]. __MACH__ is defined by the compiler,
leading to potential confusions. The solution is just changing the
checked identifier (i.e. __APPLE__), so it is really used only on
macOS.

[1] https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
[2] https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html
2021-04-21 15:24:02 +08:00
unknown 8311cef0d1 Fix typo in comment
it -> if in mimalloc-types.h
2021-04-17 15:08:25 -03:00
Danny Lin ad2fa2bf6f Fix thread ID getter on Android ARM/AArch64
Android's Bionic libc stores the thread ID in TLS slot 1 instead of 0
on 32-bit ARM and AArch64. Slot 0 contains a pointer to the ELF DTV
(Dynamic Thread Vector) instead, which is constant for each loaded DSO.

Because mimalloc uses the thread ID to determine whether operations are
thread-local or cross-thread (atomic), all threads having the same ID
causes internal data structures to get corrupted quickly when multiple
threads are using the allocator:

mimalloc: assertion failed: at "external/mimalloc/src/page.c":563, mi_page_extend_free
  assertion: "page->local_free == NULL"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":100, mi_page_is_valid_init
  assertion: "page->used + free_count == page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"

Add support for Android's alternate TLS layout to fix the crashes in
multi-threaded use cases.

Fixes #376.
2021-04-07 01:59:47 -07:00
Daan Leijen 985f313b35 bump version to 1.7.1 2021-04-06 10:56:26 -07:00
Daan Leijen 71ac98ab08 rename <Windows.h> include to <windows.h> for mingw compatibility (see pr #367) 2021-02-22 13:04:11 -08:00
Daan Leijen 331491e1e8 build fix for Apple M1 (issue #354 and pr #356) 2021-02-02 10:46:30 -08:00
Daan Leijen a7c33a3b0e fix getting the unique thread id on the Apple M1, see issue #354. 2021-02-01 15:47:22 -08:00
Daan Leijen 92ead2d880 bump version to 1.7.0 2021-01-31 13:51:19 -08:00
Daan Leijen 35c1fc2be9 limit memcpy as rep stosb to windows where the cpu supporst FSRM; add mi_memcpy_aligned for machine-word aligned copy. see issue #201 and pr #253 2021-01-30 14:33:46 -08:00
Daan Leijen 92ec493a5d possible fix for aligment warning (issue #341) 2021-01-29 16:21:50 -08:00
Daan Leijen 0a06884732 ensure memcpy with rep stosb is only used on windows 2021-01-29 16:09:09 -08:00
Daan 9b966c3492 Merge pull request #253 from haneefmubarak/memcpy-rep-movsb-windows-201
resolve #201 with a platform-selective REP MOVSB implementation
2021-01-29 16:00:00 -08:00