NAME
SYNOPSIS
DESCRIPTION
COPYRIGHT
SEE ALSO
memkind_pmem - file-backed memory memkind operations.
Note: This is EXPERIMENTAL API. The functionality and the header file itself can be changed (including non-backward compatible changes) or removed.
int memkind_pmem_create(struct memkind *kind, struct memkind_ops *ops, const char *name);
int memkind_pmem_destroy(struct memkind *kind);
void *memkind_pmem_mmap(struct memkind *kind, void *addr, size_t size);
int memkind_pmem_get_mmap_flags(struct memkind *kind, int *flags);
int memkind_pmem_validate_dir(const char *dir);
The pmem memory memkind operations enable memory kinds built on memory-mapped files. These support traditional volatile memory allocation in a fashion similar to libvmem(3) library. It uses the mmap(2) system call to create a pool of volatile memory. Such memory may have different attributes, depending on the file system containing the memory-mapped files. (See also http://pmem.io/pmdk/libvmem).
The pmem kinds are most useful when used with DAX (direct mapping of persistent memory), which is memory-addressable persistent storage that supports load/store access without being paged via the system page cache. A Persistent Memory-aware file system is typically used to provide this type of access.
The most convenient way to create pmem kinds is to use memkind_create_pmem()
or
memkind_create_pmem_with_config()
(see memkind(3)).
memkind_pmem_create()
memkind_arena_create()
(see memkind_arena(3))memkind_pmem_destroy()
memkind_pmem_create()
and allows the file system space to be reclaimed.memkind_pmem_mmap()
memkind_pmem_get_mmap_flags()
memkind_pmem_validate_dir()
Copyright (C) 2014 - 2022 Intel Corporation. All rights reserved.
memkind(3), memkind_arena(3), memkind_default(3), memkind_hbw(3), memkind_hugetlb(3), libvmem(3), jemalloc(3), mbind(2), mmap(2)
The contents of this web site and the associated GitHub repositories are BSD-licensed open source.