pmem2 API version 1.0

The PMDK repository on GitHub is the ultimate source of information on PMDK from release 2.0! For all questions and to submit eventual issues please follow to that repository. The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
CAVEATS
SEE ALSO

NAME

pmem2_source_numa_node() - returns data source numa node

SYNOPSIS

#include <libpmem2.h>

struct pmem2_source;
int pmem2_source_numa_node(const struct pmem2_source *source, int *numa_node);

DESCRIPTION

The pmem2_source_numa_node() function retrieves the numa node of the given data source. The numa node can be used to, e.g., pin threads to near-memory cores. The numa node is stored in *numa_node. It is the same value that is shown as numa_node in ndctl list -v.

RETURN VALUE

The pmem2_source_numa_node() function returns 0 on success. If the function fails, the *numa_node variable is left unmodified and a negative error code is returned.

ERRORS

The pmem2_source_numa_node() can fail with the following errors:

On all systems:

  • PMEM2_E_NOSUPP - source type or operating system not supported (see #caveats for details.)

on Linux:

  • PMEM2_E_DAX_REGION_NOT_FOUND - no ndctl_region could be determined for the source.

  • PMEM2_E_INVALID_FILE_TYPE - if the source points to a directory.

  • -errno set by failing ndctl_new, while trying to create a new context.

CAVEATS

This call requires libndctl to retrieve the numa information. It only works for sources that are actually located on persistent memory, i.e., devdax or fsdax. As anonymous sources are not backed by files on persistent memory, this method is not supported for them. It also does not work under Windows or systems without libndctl.

SEE ALSO

errno(3), ndctl_new(3), pmem2_source_from_handle(3), pmem2_source_from_fd(3), libpmem2(7), libndctl(7) and https://pmem.io

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.