* Mon Dec 16 2019 Michal Biesek v1.10.0 - Provided another way to use Persistent Memory in memkind (MEMKIND_DAX_KMEM_* kinds) - Added C++ allocator for static kinds (including MEMKIND_DAX_KMEM_* kinds) - Provided an interface to get memkind allocation statistics - Provided a method to reduce fragmentation - memkind_defrag_reallocate() - Added support for background thread - Updated internally used jemalloc to upstream version 5.2.1 - Extended hbw interface with hbw_malloc_usable_size() - Simplified building process * Wed Apr 3 2019 Michal Biesek v1.9.0 - Provided a second function to create PMEM kind memkind_create_pmem_with_config() - Provided the memkind_detect_kind() function to recognize a kind from memory allocation - Provided memkind_config_set_memory_usage_policy() function that modifies the default memory usage policy behavior - Provided the ability to pass a NULL kind to memkind_malloc_usable_size() and memkind_realloc() - Unified the memkind_realloc() behavior for all kinds - Added the support for the pool_msize() function to TBB - Extended build arch to ppc64, ppc64le, s390x - Removed disable-stats from used jemalloc - Fixed compilation under the Clang and rpm build configuration - Provided the support for Dockerfile * Mon Dec 10 2018 Michal Biesek v1.8.0 - Fixed error with realloc/free method with passing thread-specific cache flag - Fixed error with memkind_create_pmem(), if other PMEM kind was destroyed before - Fixed error with zeroing large allocations in PMEM kind - Added support to create kind without maximum size limit of PMEM kind (max_size=0) - Extended memkind API with memkind_malloc_usable_size() - Removed EXPERIMENTAL from most methods in memkind API - Added MEMKIND_ERROR_ARENAS_CREATE code - Added C++ allocator for PMEM kind - Extended PMEM examples - Fixed integration with Travis CI - Extended Travis CI configuration with Astyle and Coverage - Added PMEM kind tests * Wed Jan 24 2018 Pawel Kochanek v1.7.0 - Updated internally used jemalloc to upstream version 5.0. - Fixed error that has been occurring while memkind was dynamically loaded. - Fixed MEMKIND_HBW_NODES behavior for single NUMA node system. - Removed licenses other than BSD 3-clause from COPYING. - Changed build instructions. - Added configurable jemalloc prefix in build scripts. - Upgraded gtest to version 1.8.0. - Added memory footprint tests. - Added locality test for MEMKIND_PREFERRED. - Applied test parametrization in BATests. - Fixed problems with pytest testing in Travis. - Added huge page configuration in several tests. - Removed several symbols that are no longer exposed in public API from man pages. - Fixed HBW_POLICY_BIND_ALL documentation. * Tue Jun 13 2017 Artur Koziej v1.6.0 - Introduced new policy HBW_POLICY_BIND_ALL. - Introduced MEMKIND_HBW_ALL, MEMKIND_HBW_ALL_HUGETLB and MEMKIND_REGULAR kinds. - Fixed hbw_posix_memalign_psize() return value in case of unsupported policy and page size combination. - Documented supported policy and page size combination for hbw_posix_memalign_psize(). - Merged libmemkind.a and libjemalloc_pic.a into a single static library. - Fixed OOM during tcache acquisition. - Tuned huge pages configuration in memkind tests. - Added stress tests for allocations with large random sizes. - Added stress tests for allocations with random kinds. - Extended policy and NUMA node binding tests. - Fixed several Travis build problems. - Removed gb_page_tests_preferred_policy tests. * Tue Feb 21 2017 Krzysztof Kulakowski v1.5.0 - Intel(R) TBB scalable_allocator can be used as heap management alternative to jemalloc (requires installed Intel (R) TBB package and environment variable MEMKIND_HEAP_MANAGER=TBB) - Updated internally used jemalloc to upstream version 4.3.1 (previously modified 3.5.1) - Introduced new environment option MEMKIND_HOG_MEMORY. Setting it to "1" will prevent memkind from releasing memory to OS. - Introduced support for KNM processor from Intel(R) Xeon Phi(TM) family - General cleanup of build scripts (e.g. fixed issues found on Ubuntu, introduced simple build.sh script) - Deprecated support for gigabyte-pages - Removed number of previously deprecated symbols * Thu Nov 17 2016 Krzysztof Kulakowski v1.4.0 - Introduced hbw_verify_memory_region() for verifying if provided memory region fully falls into high-bandwidth memory (for details please take a look at man/hbwmalloc.3). - New API for creating kinds using set of predefined attributes: memkind_create_kind(), memkind_destroy_kind() (for details please take a look at man/memkind.3). - Fixed issue in autohbw where it was reporting limit error regardless of value provided. - Added logging on error paths. - Test base fixes and improvements. * Tue Sep 27 2016 Krzysztof Kulakowski v1.3.0 - Introduced logging mechanism (for details please take a look at man/memkind.3). - Deprecated symbols: memkind_finalize(), memkind_get_num_kind(), memkind_get_kind_by_partition(), memkind_get_kind_by_name(), memkind_partition_mmap(), memkind_get_size(), MEMKIND_ERROR_MEMALIGN, MEMKIND_ERROR_MALLCTL, MEMKIND_ERROR_GETCPU, MEMKIND_ERROR_PMTT, MEMKIND_ERROR_TIEDISTANCE, MEMKIND_ERROR_ALIGNMENT, MEMKIND_ERROR_MALLOCX, MEMKIND_ERROR_REPNAME, MEMKIND_ERROR_PTHREAD, MEMKIND_ERROR_BADPOLICY, MEMKIND_ERROR_REPPOLICY. - Added integration with hwloc (turned on with --with-hwloc). - Cleanup of symbols exposed by libmemkind.so (e.g. no longer exposing libnuma and jemalloc symbols). - AutoHBW files have been moved to "memkind/autohbw" directory, code has been refactored and tests have been added to appropriate scenarios. - Library is now built with flags improving security (can be turned off with --disable-secure configure time option). - Changed configuration of jemalloc to turn off unused features. * Thu Aug 18 2016 Krzysztof Kulakowski v1.2.0 - memkind_create() and memkind_ops have been deprecated (moved to memkind_deprecated.h). - Deprecated the headers from memkind/internal and added compile-time warnings to them (plan is to remove those from rpm packages). - autohbw files have been moved to memkind/autohbw directory. - API decorators (memkind_malloc_pre, memkind_malloc_post etc.) now need to be enabled with configure-time option --enable-decorators. - Allocation time optimizations with up to 20% improvement. * Wed Jul 13 2016 Krzysztof Kulakowski v1.1.1 - Performance improvement for memkind_free() in scenario where NULL was passed as kind (reduced by 60%). - Introduced integration with Travis CI. - Fixed issue where memory returned from calloc was not filled with zeroes when using memkind_pmem kinds. - Fixed issue where interleave kinds was failing on systems without Transparent Huge Pages module configured. - Resolved several issues that was causing compilation errors on some systems. - test/test.sh is now able to detect system configuration, and run only those tests which requirements are meet. - Added gtest to repo to avoid downloading it during build proecess. * Mon May 23 2016 Krzysztof Kulakowski v1.1.0 - Implemented algorithm for detecting high-bandwidth memory on Intel Xeon Phi X200 without parsing PMTT. - PMTT-parsing service has been removed. - memkind struct definition from memkind.h has been replaced by forward declaration. Definition has been moved to /internal/memkind_private.h and shouldn't be considered as part of library interface anymore. - Performance improvement for hugetlb kinds (check_available() is no longer parsing sysfs every time). - Performance fix by removing --enable-safe from jemmaloc build flags. - New tests for validating high-bandwidth memory detection has been added. - AFTS has been split into two groups: memkind-afts.ts and memkind-afts-ext.ts, based on amount of required memory (for details view test/README). * Thu Mar 03 2016 Artur Koziej v1.0.0 - hbwmalloc.h released as stable API. - Introduce API standards: STANDARD API, NON-STANDARD API, EXPERIMENTAL API. - Introduce memkind versioning API. - Fix type names in hbwmalloc API. - Change error codes to POSIX standard ones in hbwmalloc API. - Move API headers to include directory. - Move NON-STANDARD API, or EXPERIMENTAL API to include/memkind/internal directory. - New man page (memkind_interleave.3) describing interleave kind. - Significant documentation improvement. - Performance fix for jemalloc - significantly decrease of library initialization time. - Enforce 2MB alignment in jemalloc due to the Linux kernel bug (munmap() fails for huge pages, when the size is not aligned). - Move to systemd defined service (memkind.service), drop init.d script. - New rpm layout (memkind and memkind-devel). - Remove false dependency on OpenMP. - Extend test base for stress, longevity and initialization performance tests. - Fix memory leak in ctl_growk(). - Rename namespace: hbwmalloc -> hbw. - Rename class: hbwmalloc_allocator -> allocator. * Thu Oct 15 2015 Krzysztof Kulakowski v0.3.0 - Added two new kinds: MEMKIND_INTERLEAVE and MEMKIND_HBW_INTERLEAVE (for details please take a look at man/memkind.3) - Added support for file-backed memory heaps (for details please take a look at man/memkind_pmem.3) - Added autohbw library, that intercepts the standard heap allocations, which let use high-bandwidth memory without modifying existing codebase (for details please take a look at examples/autohbw_README) - jemalloc is now, statically linked, internal component of memkind RPM instead of rpm dependency. - Added memkind_allocated example which demonstrates usage of memkind with alignas() alignment specifier introduced in C++11 (for details please take a look at examples/README) - Added support for using thread local storage to improve performance in multithreaded applications (enabled by configure time option: --enable-tls) - Added possibility to set number of jemalloc arenas per kind by configure time parameter or environmental variable (for details please take a look at MEMKIND_ARENA_NUM_PER_KIND section of man/memkind.3). - Added decorators to the memkind allocation APIs. These are weak symbols (pre and post for each API) which can modify the input and output of each of the calls. - Significantly extended test base (new groups of tests: performance, multithreaded, PMTT, nagtive, stress). * Fri Jan 9 2015 Christopher Cantalupo v0.2.0 - Bumped memkind ABI version to 0:1:0. - Removed memkind_get_kind_for_free() from externally facing API's. Instead if memkind_free() is called with zero passed for the kind then memkind_get_kind_for_free() is called internally. - Moved to single callback memkind_partition_mmap() to simplify jemalloc modifications. - Added hooks for setting file descriptor and offset for mmap enabling file-backed memory kinds. - Added a void pointer called "priv" to memkind structure for storing data for user-defined kinds. - Removed call to sched_getcpu(), now thread id is hashed to determine the arena index. - Added weak symbol hooks for decorating the heap management functions. - Fixed several issues with init.d/memkind script and spec file scriptlets that are exposed by SLES-12. - Introduced an example library called numakind. The numakind library will allocate from the closest NUMA node to a thread as measured when that thread makes its first allocation call. - Fixed error handling in memkind_gbtlb_mmap() that could cause a segfault when gigabyte pages are not available. - Added tests for PMTT parser. - Removed binary mock PMTT table from source code, replaced it with a hexdump. - Fixed a number of issues in test scripts which were suppressing errors. - Removed unnecessary includes from header files. - Better error checking in example code. - Documentation update and clean up. * Thu Nov 13 2014 Christopher Cantalupo v0.1.0 - Increased test code coverage significantly. - Fixed bug in memkind_error_message() for MEMKIND_ERROR_TOOMANY. - Removed memkind_arena_free() API since it was redundant with memkind_default_free(). - Static memkind structs are now declared as extern in the headers and defined in the source files files rather than being statically defined in the headers. * Thu Oct 30 2014 Christopher Cantalupo v0.0.9 - Now building with autotools. - Updated documentation. - Fixed typo in copyright. - Fixed test scripts to properly handle return code of each test. - Added C++03 standard allocator that uses hbw_malloc and hbw_free. * Tue Sep 30 2014 Christopher Cantalupo v0.0.8 - Added GBTLB functionality, code clean up, documentation updates, examples directory. Examples includes stream modified to use memkind interface. Code coverage still lacking, and documentation incomplete.