- Update to PMDK 1.11.1
Bugfixes:
- doc: remove exprimental moniker from libpmem2(7)
- common: fix missing sfence in non-temporal memcpy
- common: fix a mismatch between prototype and body
- common: the yearly spellchecker run
- common: force no LTO for rpm build
- common: fix mismatched function args
- obj: rename vars clashing with those of a containing block
- pmem2: don't force smaller alignment for fsdax mappings
- pool: don't trample upon users of localtime()
- rpmem: Fix RPMEM_RAW_BUFF_SIZE and LANE_ALIGN_SIZE for powerpc64le
- rpmem: drop a redundant check
OBS-URL: https://build.opensuse.org/request/show/924641
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=34
- Update to PMDK 1.11.0
* Version 1.11.0
- Adds new APIs for libpmem2, most notably there are new functions
to shrink and extend an existing reservation and a new iterator API
for mappings contained within an existing reservation. There's also
a new function to retrieve a numa node for a source.
- Makes the pmemobj_open() and pmemobj_close() functions from libpmemobj
thread-safe. It's now easier to correctly manage persistent memory
pools in a parallel environment.
- Introduces a new API in libpmemobj to globally change the method of
assigning arenas to threads. The default is to rely on a OS per-thread
key to store arena information. This release introduces an option
to avoid the use of thread-local keys by simply using one global
arena for all threads in a pool.
- pmem2: don't force smaller alignment for fsdax mappings
- rpmem: various fixes for powerpc64le
- doc: fix documentation of pmem_is_pmem()
- common: fix various minor problems found by static analysis
- pmem2: arm64: fix possible data loss on ARMv8.2+ (improper flushing)
This release introduces no changes to the on-media layout and is
fully compatible with the previous version of 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.
- Update to PMDK 1.9.2
* 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.
* Version 1.9.1
- 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
- Drop common-fix-LIBFABRIC-flags.patch (now in upstream)
- Add a comment to gen-doc.sh
OBS-URL: https://build.opensuse.org/request/show/918706
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=30
- Update to PMDK 1.9
- 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.
- Stabilizes support for ppc64.
- pmem: mem[cpy|set] optimization when eADR is available
- obj: detect msync failures in non-pmem variants of mem[cpy|move|set]
- Add patches to fix compilation against libfabric:
- examples-rpmem-add-missing-lfabric-flag.patch to fix examples linkage errors
- common-fix-LIBFABRIC-flags.patch to fix daemons/tools linkage errors
OBS-URL: https://build.opensuse.org/request/show/825928
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=26
- Update to PMDK 1.8
- 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).
- 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
- Add gen-doc.sh to pregenerate documentation in pregen-doc.tgz and avoid adding a
build dependency to pandoc
OBS-URL: https://build.opensuse.org/request/show/781091
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=23
- Update to PMDK 1.7 (jsc#SLE-9886)
- Introduces new APIs in libpmemobj for managing space used by transactions.
(see pmemobj_tx_log_append_buffer man page for details)
- Introduces new APIs in librpmem, splitting rpmem_persist into rpmem_flush
and rpmem_drain, allowing applications to use the flush + drain model
already known from libpmem. (libpmemobj does not use this feature yet)
- Optimizes large libpmemobj transactions by significantly reducing
the amount of memory modified at the commit phase.
- Optimizes tracking of libpmemobj reservations.
- Adds new flags for libpmemobj's pmemobj_tx_xadd_range[_direct] API:
POBJ_XADD_NO_SNAPSHOT and POBJ_XADD_ASSUME_INITIALIZED, allowing
applications to optimize how memory is tracked by the library.
- To support some of the above changes the libpmemobj on-media layout had
to be changed, which means that old pools have to be converted using
pmdk-convert >= 1.7.
OBS-URL: https://build.opensuse.org/request/show/741897
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=21
- Update to pmdk 1.5 (fate#326234)
- New features:
- common: unsafe shutdown detection (SDS)
- common: detection and repair of uncorrectable memory errors (bad blocks)
- pool: new "feature" subcommand for enabling and disabling detection of
unsafe shutdown and uncorrectable memory errors
- common: auto flush detection on Windows (on Linux since 1.4)
- pmreorder: new tool for verification of persistent memory algorithms
- obj: new on media layout
- pmem/obj: new flexible memcpy|memmove|memset API
- obj: new flushing APIs: pmemobj_xpersist, pmemobj_xflush (PMEMOBJ_F_RELAXED)
- rpmem: new flag RPMEM_PERSIST_RELAXED for rpmem_persist
- obj: lazily initialized volatile variables (pmemobj_volatile) (EXPERIMENTAL)
- obj: allocation classes with alignment
- obj: new action APIs: pmemobj_defer_free, POBJ_XRESERVE_NEW,
POBJ_XRESERVE_ALLOC
- blk/log: new "ctl" API
- Optimizations:
- obj: major performance improvements for AEP NVDIMMs
- obj: better space utilization for small allocations
- common: call msync only on one page for deep drain
- Other changes:
- cto: removed
- obj: remove actions limit
- common: new dependency on libndctl on Linux
- pmempool: "convert" subcommand is now a wrapper around pmdk-convert
(please see https://github.com/pmem/pmdk-convert)
- obj: C++ bindings have been moved to a new repository
(please see https://github.com/pmem/libpmemobj-cpp)
- Bug fixes:
OBS-URL: https://build.opensuse.org/request/show/646395
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=13
- Update to version 1.4 (FATE#325145):
- build-fix.patch
* doc: update ChangeLog for 1.4 release
* common: SRCVERSION for out of git tree builds
* doc: mark experimental APIs in man pages
* doc: rephrase paragraphs mentioning eADR
* doc: update man page version numbers
* doc: automatic master docs update
* doc: update README (forwarded request 615933 from morbidrsa)
OBS-URL: https://build.opensuse.org/request/show/615936
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pmdk?expand=0&rev=3