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 #include <memkind/internal/memkind_hbw.h>
13
14 Link with -lmemkind
15
16 int memkind_hbw_check_available(struct memkind *kind);
17 int memkind_hbw_hugetlb_check_available(struct memkind *kind);
18 int memkind_hbw_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode);
19 int memkind_hbw_all_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode);
20 void memkind_hbw_init_once(void);
21 void memkind_hbw_hugetlb_init_once(void);
22 void memkind_hbw_all_hugetlb_init_once(void);
23 void memkind_hbw_preferred_init_once(void);
24 void memkind_hbw_preferred_hugetlb_init_once(void);
25 void memkind_hbw_interleave_init_once(void);
26
28 High bandwidth memory memkind operations.
29
30 memkind_hbw_check_available() returns zero if library was able to
31 detect heterogeneous NUMA node bandwidths. Returns MEMKIND_UNAVAIL‐
32 ABLE if the detection mechanism failed. Detection mechanism can be
33 also overridden by the environment variable MEMKIND_HBW_NODES as
34 described in the memkind(3) man page.
35
36 memkind_hbw_hugetlb_check_available() In addition to checking for high
37 bandwidth memory as is done by memkind_hbw_check_available(), this also
38 checks for 2MB huge pages as is done by memkind_hugetlb_check_avail‐
39 able_2mb().
40
41 memkind_hbw_get_mbind_nodemask() sets the nodemask bit to one that cor‐
42 responds to the high bandwidth NUMA node that has the closest NUMA dis‐
43 tance to the CPU of the calling process. All other bits up to maxnode
44 are set to zero. The nodemask can be used in conjunction with the
45 mbind(2) system call.
46
47 memkind_hbw_all_get_mbind_nodemask() sets the nodemask bits to one that
48 correspond to the all high bandwidth NUMA nodes in the system. 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_init_once() This function initializes MEMKIND_HBW kind and
53 it should not be called more than once. Note: memkind_hbw_init_once()
54 may reserve some extra memory.
55
56 memkind_hbw_hugetlb_init_once() This function initializes
57 MEMKIND_HBW_HUGETLB kind and it should not be called more than once.
58 Note: memkind_hbw_hugetlb_init_once() may reserve some extra memory.
59
60 memkind_hbw_preferred_init_once() This function initializes
61 MEMKIND_HBW_PREFERRED kind and it should not be called more than once.
62 Note: memkind_hbw_preferred_init_once() may reserve some extra memory.
63
64 memkind_hbw_preferred_hugetlb_init_once() This function initializes
65 MEMKIND_HBW_PREFERRED_HUGETLB kind and it should not be called more
66 than once. Note: memkind_hbw_preferred_hugetlb_init_once() may reserve
67 some extra memory.
68
69 memkind_hbw_all_hugetlb_init_once() This function initializes
70 MEMKIND_HBW_ALL_HUGETLB kind and it should not be called more than
71 once. Note: memkind_hbw_all_hugetlb_init_once() may reserve some extra
72 memory.
73
74 memkind_hbw_interleave_init_once() This function initializes
75 MEMKIND_HBW_INTERLEAVE kind and it should not be called more than once.
76 Note: memkind_hbw_interleave_init_once() may reserve some extra memory.
77
79 Copyright (C) 2014 - 2019 Intel Corporation. All rights reserved.
80
82 memkind(3), memkind_arena(3), memkind_default(3), memkind_hugetlb(3),
83 memkind_pmem(3), jemalloc(3), mbind(2), mmap(2)
84
85
86
87Intel Corporation 2016-06-13 MEMKIND_HBW(3)