Releases: pmem/pmdk
PMDK Version 1.10
This release introduces a new stable PMDK library, libpmem2, which
is the next major release of libpmem.
This library has an entirely new, but familiar API that addresses many
shortcomings of the previous version while retaining all of its
functionality. To learn more, see https://pmem.io/pmdk/libpmem2/ or
libpmem2(7).
The old library, libpmem, is still going to be maintained for the
foreseeable future, but we'd like to encourage any new applications to
leverage libpmem2.
PMDK Version 1.9.2
This release reverts an incorrect change in SDS handling
"pool: disable SDS check if not supported", and introduces
a proper fix for the issues that patch attempted to correct.
PMDK Version 1.10-rc1
common: 1.10-rc1 release
PMDK Version 1.9.1
Detailed list of bug fixes:
- common: fix LIBFABRIC flags
- common: Add runtime SDS check and disable
- pool: disable SDS check if not supported
- obj: fix failure atomicity bug in huge allocs
- obj: add missing drain after ulog processing
PMDK Version 1.8.1
Detailed list of bug fixes:
- test: Fix obj_zones for ppc64le
- doc: fix return type of pmemobj_tx_stage()
- common: fix calculation of bad blocks in os_badblocks_get()
- pmem: Fix data cache flush on ppc64
- obj: fix run allocated recalculation
- obj: fix failure atomicity bug in huge allocs
- obj: add missing drain after ulog processing
PMDK Version 1.7.1
Detailed list of bug fixes:
- os_posix: Use FreeBSD to control secure_getenv definition
- obj: fix pmemcheck marker in pmemobj_tx_wcsdup
- common: fix manpage section references in comments and text files
- doc: fix formatting of pmreorder man page
- obj: fix transient redo log of more than 64 entries
- obj: fix unintended recursive locking during palloc
- pool: fix possible memory leak
- obj: fix potential NULL-dereference in ulog_store
- pmem: fix pmemcheck support on platforms with eADR
- obj: fix lock release order in palloc publish
- doc: fix make uninstall for man page links
- obj: fix zone size calculations
- doc: fix return type of pmemobj_tx_stage()
- common: fix calculation of bad blocks in os_badblocks_get()
- obj: fix failure atomicity bug in huge allocs
- obj: add missing drain after ulog processing
PMDK Version 1.9
This release:
- Switches the default instruction set for memcpy, memmove and memset
implementations on x86 to AVX512, and introduces numerous performance
improvements for those operations on AVX and SSE2 fallback paths. - Optimizes transactional allocations in libpmemobj by avoiding one
extraneous cache miss and reducing the amount of work required to perform
a reservation. - Introduces a new API in libpmemobj, pmemobj_tx_set_failure_behavior,
that enables the application to control the behavior of aborting
transactions. - Improves performance of pool creation on Windows by avoiding expensive
physical page allocation during file allocation. - Stabilizes support for ppc64.
Other changes:
- pmem: mem[cpy|set] optimization when eADR is available
- obj: detect msync failures in non-pmem variants of mem[cpy|move|set]
Notable bug fixes:
- core: fix Last_errormsg_get when NO_LIBPTHREAD is defined
- pmem: read Unsafe Shutdown Count from region instead of interleave set
- common: fix deep_flushes failing on platforms that don't need them
- pmem: fix data cache flush on ppc64
- obj: fix run allocated recalculation
PMDK Version 1.9-rc2
PMDK Version 1.9-rc2
PMDK Version 1.9-rc1
PMDK Version 1.9-rc1
PMDK Version 1.8
This release:
- Introduces new API in libpmemobj for user-assisted defragmentation (see pmemobj_defrag man page for details).
- Introduces experimental support for PPC64LE architecture.
- Introduces new flag in libpmemobj for opting-out of transaction aborts on failure (POBJ_TX_NO_ABORT), along with new variants of existing APIs that didn't accept flags (pmemobj_tx_xfree, pmemobj_tx_xpublish,
pmemobj_tx_xlock, pmemobj_tx_xlog_append_buffer, pmemobj_tx_xstrdup, pmemobj_tx_xwcsdup). - Moves out libvmem and libvmmalloc to the new repository (https://github.com/pmem/vmem).
libpmemobj on-media layout has not changed in this release, which means that pool conversion is not needed when updating PMDK from 1.7 to 1.8. pmdk-convert 1.8 will not be released.
Other changes:
- obj: introduce new statistics useful for defrag
- obj: introduce transient/persistent statistics enabling
- obj: introduce pmemobj_tx_(set/get)_user_data funcs
- obj: introduce pmemobj_(set/get)_user_data funcs
- obj: disable workaround for offsetof() since VS 15.5 in public header
- common: drop support for libndctl < 63 on Linux
- pool: rename -N --no-exec to -d --dry-run
Notable bug fixes:
- obj: fix zone size calculations (partial fix for #4528)
- obj: fix potential NULL-dereference in ulog_store
- obj: fix unintended recursive locking during palloc
- obj: fix lock release order in palloc publish
- obj: fix transient redo log of more than 64 entries
- obj: fix capacity ulog calculation
- obj: fix check of unaligned capacity size
- rpmem: add a missing case for GPSPM + FLUSH_STRICT
- pmem: fix pmemcheck support on platforms with eADR
- pool: fix possible memory leak
- rpmem: fix possible memory leak in rpmemd_config_read
- rpmem: fix possible memory leak in rpmemd_log_init
- rpmem: fix possible use-after-free
Known problems:
- obj: allocation is partially outside the pool (#4528)