1MEMKIND_HBW(3) MEMKIND_HBW MEMKIND_HBW(3)
2
3
4
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
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
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
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)