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

NAME

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

SYNOPSIS

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

DESCRIPTION

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

SEE ALSO

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)
Impressum