1MEMKIND_HBW(3)                    MEMKIND_HBW                   MEMKIND_HBW(3)
2
3
4

NAME

6       memkind_hbw - high bandwidth memory memkind operations.
7       Note:  This  is EXPERIMENTAL API. The functionality and the header file
8       itself can be changed (including non-backward  compatible  changes)  or
9       removed.
10

SYNOPSIS

12       int memkind_hbw_check_available(struct memkind *kind);
13       int memkind_hbw_hugetlb_check_available(struct memkind *kind);
14       int memkind_hbw_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode);
15       int memkind_hbw_get_preferred_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode);
16       int memkind_hbw_all_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode);
17       void memkind_hbw_init_once(void);
18       void memkind_hbw_hugetlb_init_once(void);
19       void memkind_hbw_all_hugetlb_init_once(void);
20       void memkind_hbw_preferred_init_once(void);
21       void memkind_hbw_preferred_hugetlb_init_once(void);
22       void memkind_hbw_interleave_init_once(void);
23

DESCRIPTION

25       High bandwidth memory memkind operations.
26
27       memkind_hbw_check_available()  returns  zero if library was able to de‐
28       tect heterogeneous NUMA node  bandwidths.    Returns  MEMKIND_ERROR_UN‐
29       AVAILABLE  if  the detection mechanism failed.  Detection mechanism can
30       be also overridden by the environment variable MEMKIND_HBW_NODES as de‐
31       scribed in the memkind(3) man page.
32
33       memkind_hbw_hugetlb_check_available()  In addition to checking for high
34       bandwidth memory as is done by memkind_hbw_check_available(), this also
35       checks  for  2MB  huge pages as is done by memkind_hugetlb_check_avail‐
36       able_2mb().
37
38       memkind_hbw_get_mbind_nodemask() sets the nodemask bit to one that cor‐
39       responds  to  the  high  bandwidth NUMA nodes that has the closest NUMA
40       distance to the CPU of the calling process.  All other bits up to maxn‐
41       ode  are set to zero.  The nodemask can be used in conjunction with the
42       mbind(2) system call.
43
44       Note: The function will fail if two or more high bandwidth memory  NUMA
45       nodes are in the same the closest NUMA distance to the CPU of the call‐
46       ing process.  memkind_hbw_get_preferred_mbind_nodemask() sets the node‐
47       mask  bit  to one that corresponds to the high bandwidth NUMA node that
48       has the closest NUMA distance to the CPU of the calling  process.   All
49       other  bits up to maxnode are set to zero.  The nodemask can be used in
50       conjunction with the mbind(2) system call.
51
52       memkind_hbw_all_get_mbind_nodemask() sets the nodemask bits to one that
53       correspond  to  the  all  high  bandwidth NUMA nodes in the system. All
54       other bits up to maxnode are set to zero.  The nodemask can be used  in
55       conjunction with the mbind(2) system call.
56
57       memkind_hbw_init_once()  This function initializes MEMKIND_HBW kind and
58       it should not be called more than once.  Note:  memkind_hbw_init_once()
59       may reserve some extra memory.
60
61       memkind_hbw_hugetlb_init_once()      This      function     initializes
62       MEMKIND_HBW_HUGETLB kind and it should not be called  more  than  once.
63       Note: memkind_hbw_hugetlb_init_once() may reserve some extra memory.
64
65       memkind_hbw_preferred_init_once()     This     function     initializes
66       MEMKIND_HBW_PREFERRED kind and it should not be called more than  once.
67       Note: memkind_hbw_preferred_init_once() may reserve some extra memory.
68
69       memkind_hbw_preferred_hugetlb_init_once()   This  function  initializes
70       MEMKIND_HBW_PREFERRED_HUGETLB kind and it should  not  be  called  more
71       than once.  Note: memkind_hbw_preferred_hugetlb_init_once() may reserve
72       some extra memory.
73
74       memkind_hbw_all_hugetlb_init_once()    This    function     initializes
75       MEMKIND_HBW_ALL_HUGETLB  kind  and  it  should  not be called more than
76       once.  Note: memkind_hbw_all_hugetlb_init_once() may reserve some extra
77       memory.
78
79       memkind_hbw_interleave_init_once()     This     function    initializes
80       MEMKIND_HBW_INTERLEAVE kind and it should not be called more than once.
81       Note: memkind_hbw_interleave_init_once() may reserve some extra memory.
82
84       Copyright (C) 2014 - 2021 Intel Corporation. All rights reserved.
85

SEE ALSO

87       memkind(3),  memkind_arena(3),  memkind_default(3), memkind_hugetlb(3),
88       memkind_pmem(3), jemalloc(3), mbind(2), mmap(2)
89
90
91
92Intel Corporation                 2016-06-13                    MEMKIND_HBW(3)
Impressum