1MEMKIND_HBW(3) MEMKIND_HBW MEMKIND_HBW(3)
2
3
4
6 memkind_hbw.h - high bandwidth memory memkind operations.
7 Note: This is EXEPRIMENTAL API. The functionality and the header file
8 itself can be changed (including non-backward compatible changes), or
9 remove.
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_preferred_init_once(void);
23 void memkind_hbw_preferred_hugetlb_init_once(void);
24 void memkind_hbw_interleave_init_once(void);
25
27 High bandwidth memory memkind operations.
28
29 memkind_hbw_check_available() returns zero if library was able to
30 detect heterogeneous NUMA node bandwidths. Returns MEMKIND_UNAVAIL‐
31 ABLE if the detection mechanism failed. Detection mechanism can be
32 also overridden by the environment variable MEMKIND_HBW_NODES as
33 described in the memkind(3) man page.
34
35 memkind_hbw_hugetlb_check_available() In addition to checking for high
36 bandwidth memory as is done by memkind_hbw_check_available (), this
37 also checks for 2MB huge pages as is done by
38 memkind_hugetlb_check_available_2mb().
39
40 memkind_hbw_get_mbind_nodemask() sets the nodemask bit to one that cor‐
41 responds to the high bandwidth NUMA node that has the closest NUMA dis‐
42 tance to the CPU of the calling process. All other bits up to maxnode
43 are set to zero. The nodemask can be used in conjuction with the
44 mbind(2) system call.
45
46 memkind_hbw_all_get_mbind_nodemask() sets the nodemask bits to one that
47 correspond to the all high bandwidth NUMA nodes in the system. All
48 other bits up to maxnode are set to zero. The nodemask can be used in
49 conjuction with the mbind(2) system call.
50
51 memkind_hbw_init_once() This function initializes MEMKIND_HBW kind and
52 it should not be called more than once. Note: memkind_hbw_init_once()
53 may reserve some extra memory.
54
55 memkind_hbw_hugetlb_init_once() This function initializes
56 MEMKIND_HBW_HUGETLB kind and it should not be called more than once.
57 Note: memkind_hbw_hugetlb_init_once() may reserve some extra memory.
58
59 memkind_hbw_preferred_init_once() This function initializes
60 MEMKIND_HBW_PREFERRED kind and it should not be called more than once.
61 Note: memkind_hbw_preferred_init_once() may reserve some extra memory.
62
63 memkind_hbw_preferred_hugetlb_init_once() This function initializes
64 MEMKIND_HBW_PREFERRED_HUGETLB kind and it should not be called more
65 than once. Note: memkind_hbw_preferred_hugetlb_init_once() may reserve
66 some extra memory.
67
68 memkind_hbw_interleave_init_once() This function initializes
69 MEMKIND_HBW_INTERLEAVE kind and it should not be called more than once.
70 Note: memkind_hbw_interleave_init_once() may reserve some extra memory.
71
73 Copyright (C) 2014 - 2016 Intel Corporation. All rights reserved.
74
76 memkind(3), memkind_arena(3), memkind_default(3), memkind_hugetlb(3),
77 memkind_pmem(3), jemalloc(3), mbind(2), mmap(2)
78
79
80
81Intel Corporation 2016-06-13 MEMKIND_HBW(3)