summaryrefslogtreecommitdiffstats
path: root/src/kernel/tests/include/tst_hugepage.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/tests/include/tst_hugepage.h')
-rw-r--r--src/kernel/tests/include/tst_hugepage.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/kernel/tests/include/tst_hugepage.h b/src/kernel/tests/include/tst_hugepage.h
new file mode 100644
index 0000000..e08a2da
--- /dev/null
+++ b/src/kernel/tests/include/tst_hugepage.h
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2019 Red Hat, Inc.
+ */
+
+#ifndef TST_HUGEPAGE__
+#define TST_HUGEPAGE__
+
+#define PATH_HUGEPAGES "/sys/kernel/mm/hugepages/"
+#define PATH_NR_HPAGES "/proc/sys/vm/nr_hugepages"
+
+extern char *nr_opt; /* -s num Set the number of the been allocated hugepages */
+extern char *Hopt; /* -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs */
+
+/*
+ * Get the default hugepage size. Returns 0 if hugepages are not supported.
+ */
+size_t tst_get_hugepage_size(void);
+
+/*
+ * Try the best to request a specified number of huge pages from system,
+ * it will store the reserved hpage number in tst_hugepages.
+ *
+ * Note: this depend on the status of system memory fragmentation.
+ */
+unsigned long tst_request_hugepages(unsigned long hpages);
+
+/*
+ * This variable is used for recording the number of hugepages which system can
+ * provides. It will be equal to 'hpages' if tst_request_hugepages on success,
+ * otherwise set it to a number of hugepages that we were able to reserve.
+ *
+ * If system does not support hugetlb, then it will be set to 0.
+ */
+extern unsigned long tst_hugepages;
+
+#endif /* TST_HUGEPAGE_H */