hi,
Any comment to this patch? Thanks.:)
--
Best Regards,
Tang chen
Signed-off-by: tangchen <[email protected]>
---
runtest/hugetlb | 8 +-
testcases/kernel/mem/hugetlb/hugemmap/Makefile | 27 +++++++-
testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c | 59 +++++++---------
testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c | 49 +++++++-------
testcases/kernel/mem/hugetlb/hugemmap/hugemmap03.c | 56 ++++++++--------
testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c | 41 +++++-------
testcases/kernel/mem/hugetlb/hugemmap/lib/Makefile | 25 +++++++
testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.c | 70 ++++++++++++++++++++
testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.h | 27 ++++++++
9 files changed, 245 insertions(+), 117 deletions(-)
create mode 100644 testcases/kernel/mem/hugetlb/hugemmap/lib/Makefile
create mode 100644 testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.c
create mode 100644 testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.h
diff --git a/runtest/hugetlb b/runtest/hugetlb
index af45868..641c2a6 100644
--- a/runtest/hugetlb
+++ b/runtest/hugetlb
@@ -1,7 +1,7 @@
-hugemmap01 hugemmap01 -H/tmp
-hugemmap02 hugemmap02 -H/tmp -c10
-hugemmap03 hugemmap03 -H/tmp -I2 -c10
-hugemmap04 hugemmap04 -H/tmp
+hugemmap01 hugemmap01
+hugemmap02 hugemmap02 -c10
+hugemmap03 hugemmap03 -I2 -c10
+hugemmap04 hugemmap04
hugemmap05 hugemmap05
hugemmap05_1 hugemmap05 -m
hugemmap05_2 hugemmap05 -s
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/Makefile
b/testcases/kernel/mem/hugetlb/hugemmap/Makefile
index a1ba46e..b89a040 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/Makefile
+++ b/testcases/kernel/mem/hugetlb/hugemmap/Makefile
@@ -20,8 +20,31 @@
# Garrett Cooper, July 2009
#
-top_srcdir ?= ../../../../..
+top_srcdir ?= ../../../../..
include $(top_srcdir)/include/mk/testcases.mk
-include $(abs_srcdir)/../Makefile.inc
+
+LIBDIR := lib
+LIB := $(LIBDIR)/libmnt_hugetlb.a
+FILTER_OUT_DIRS := $(LIBDIR)
+
+$(LIBDIR):
+ mkdir -p "$@"
+
+$(LIB): $(LIBDIR)
+ $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" all
+
+CPPFLAGS += -I$(abs_srcdir)/$(LIBDIR)
+
+LDFLAGS += -L$(abs_builddir)/$(LIBDIR)
+
+LDLIBS += -lmnt_hugetlb
+
+MAKE_DEPS := $(LIB)
+
+trunk-clean:: | lib-clean
+
+lib-clean:: $(LIBDIR)
+ $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" clean
+
include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
index 874f736..ddde10c 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
@@ -73,53 +73,42 @@
#include "test.h"
#include "usctest.h"
#include "system_specific_hugepages_info.h"
+#include "lib/libmnt.h"
#define BUFFER_SIZE 256
-char* TEMPFILE="mmapfile";
+char TEMPFILE[MAXPATHLEN];
char *TCID="hugemmap01"; /* Test program identifier. */
int TST_TOTAL=1; /* Total number of test cases. */
long *addr; /* addr of memory mapped region */
int fildes; /* file descriptor for tempfile */
-char *Hopt; /* location of hugetlbfs */
-int beforetest=0; /* Amount of free huge pages before testing */
-int aftertest=0; /* Amount of free huge pages after testing */
+int free_huge_before=0;
+int free_huge_after=0;
int hugepagesmapped=0; /* Amount of huge pages mapped after testing */
+char *mount_point = NULL;
-void setup(); /* Main setup function of test */
-void cleanup(); /* cleanup function for the test */
-
-void help()
-{
- printf(" -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs \n");
-}
+void setup(void);
+void cleanup(void);
int
main(int ac, char **av)
{
int lc; /* loop counter */
char *msg; /* message returned from parse_opts */
- int Hflag=0; /* binary flag: opt or not */
int page_sz=0;
- option_t options[] = {
- { "H:", &Hflag, &Hopt }, /* Required for location of
hugetlbfs */
- { NULL, NULL, NULL } /* NULL required to end array */
- };
+ option_t options[] = {
+ { NULL, NULL, NULL } /* NULL required to end array */
+ };
/* Parse standard options given to run the test. */
- msg = parse_opts(ac, av, options, &help);
+ msg = parse_opts(ac, av, options, NULL);
if (msg != (char *) NULL) {
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help",
msg);
tst_exit();
}
- if (Hflag == 0) {
- tst_brkm(TBROK, NULL, "-H option is REQUIRED for this test, use
-h for options help");
- tst_exit();
- }
-
setup();
for (lc = 0; TEST_LOOPING(lc); lc++) {
@@ -134,7 +123,7 @@ main(int ac, char **av)
Tst_count=0;
/* Note the number of free huge pages BEFORE testing */
- beforetest = get_no_of_free_hugepages();
+ free_huge_before = get_no_of_free_hugepages();
/* Note the size of huge page size BEFORE testing */
page_sz = hugepages_size();
@@ -159,8 +148,8 @@ main(int ac, char **av)
}
/* Make sure the number of free huge pages AFTER testing
decreased */
- aftertest = get_no_of_free_hugepages();
- hugepagesmapped = beforetest - aftertest;
+ free_huge_after = get_no_of_free_hugepages();
+ hugepagesmapped = free_huge_before - free_huge_after;
if (hugepagesmapped < 1) {
tst_resm(TWARN,"Number of HUGEPAGES_FREE stayed the
same. Okay if");
tst_resm(TWARN,"multiple copies running due to test
collision.");
@@ -189,18 +178,21 @@ main(int ac, char **av)
* Write some known data into file and get the size of the file.
*/
void
-setup()
+setup(void)
{
- char mypid[40];
-
- sprintf(mypid,"/%d",getpid());
- TEMPFILE=strcat(mypid,TEMPFILE);
- TEMPFILE=strcat(Hopt,TEMPFILE);
+ tst_require_root(NULL);
tst_sig(FORK, DEF_HANDLER, cleanup);
TEST_PAUSE;
+ tst_tmpdir();
+ mount_point = get_tst_tmpdir();
+
+ mount_hugetlbfs(mount_point);
+ hugepage_alloc(1024);
+
+ snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", mount_point,
getpid());
}
/*
@@ -209,7 +201,7 @@ setup()
* Remove the temporary directory created.
*/
void
-cleanup()
+cleanup(void)
{
/*
* print timing stats if that option was specified.
@@ -217,5 +209,6 @@ cleanup()
TEST_CLEANUP;
unlink(TEMPFILE);
-
+ umount_hugetlbfs(mount_point);
+ tst_rmdir();
}
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
index 45cddf7..bef5b78 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
@@ -63,6 +63,7 @@
#include "test.h"
#include "usctest.h"
#include "system_specific_hugepages_info.h"
+#include "lib/libmnt.h"
#define LOW_ADDR (void *)(0x80000000)
#define LOW_ADDR2 (void *)(0x90000000)
@@ -77,36 +78,27 @@ unsigned long *addrlist[5]; /* list of addresses of memory
mapped region */
int i;
int fildes; /* file descriptor for tempfile */
int nfildes; /* file descriptor for /dev/zero */
-char *Hopt; /* location of hugetlbfs */
+char *mount_point = NULL;
-void setup(); /* Main setup function of test */
-void cleanup(); /* cleanup function for the test */
-
-void help()
-{
- printf(" -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs \n");
-}
+void setup(void); /* Main setup function of test */
+void cleanup(void); /* cleanup function for the test */
int
main(int ac, char **av)
{
int lc;
- char *msg;
- int Hflag = 0;
+ char *msg; /* message returned from parse_opts */
int page_sz, map_sz;
- option_t options[] = {
- { "H:", &Hflag, &Hopt }, /* Required for location of
hugetlbfs */
- { NULL, NULL, NULL } /* NULL required to end array */
- };
+ option_t options[] = {
+ { NULL, NULL, NULL } /* NULL required to end array */
+ };
/* Parse standard options given to run the test. */
- if ((msg = parse_opts(ac, av, options, &help)) != NULL)
+ msg = parse_opts(ac, av, options, NULL);
+ if (msg != (char *) NULL) {
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help",
msg);
-
- if (Hflag == 0) {
- tst_brkm(TBROK, NULL,
- "-H option is REQUIRED for this test, use -h for options
help");
+ tst_exit();
}
page_sz = getpagesize();
@@ -206,15 +198,20 @@ main(int ac, char **av)
* Write some known data into file and get the size of the file.
*/
void
-setup()
+setup(void)
{
- tst_tmpdir();
-
- snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", Hopt, getpid());
+ tst_require_root(NULL);
tst_sig(FORK, DEF_HANDLER, cleanup);
-
TEST_PAUSE;
+
+ tst_tmpdir();
+ mount_point = get_tst_tmpdir();
+
+ mount_hugetlbfs(mount_point);
+ hugepage_alloc(1024);
+
+ snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", mount_point,
getpid());
}
/*
@@ -223,7 +220,7 @@ setup()
* Remove the temporary directory created.
*/
void
-cleanup()
+cleanup(void)
{
/*
* print timing stats if that option was specified.
@@ -231,6 +228,6 @@ cleanup()
TEST_CLEANUP;
unlink(TEMPFILE);
-
+ umount_hugetlbfs(mount_point);
tst_rmdir();
}
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap03.c
b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap03.c
index cac94b0..1ffb8a1 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap03.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap03.c
@@ -54,31 +54,26 @@
#include "test.h"
#include "usctest.h"
#include "system_specific_hugepages_info.h"
+#include "lib/libmnt.h"
#define HIGH_ADDR (void *)(0x1000000000000)
-char* TEMPFILE="mmapfile";
+char TEMPFILE[MAXPATHLEN];
char *TCID="hugemmap03"; /* Test program identifier. */
int TST_TOTAL=1; /* Total number of test cases. */
unsigned long *addr; /* addr of memory mapped region */
int fildes; /* file descriptor for tempfile */
-char *Hopt; /* location of hugetlbfs */
+char *mount_point = NULL;
-void setup(); /* Main setup function of test */
-void cleanup(); /* cleanup function for the test */
-
-void help()
-{
- printf(" -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs \n");
-}
+void setup(void); /* Main setup function of test */
+void cleanup(void); /* cleanup function for the test */
int
main(int ac, char **av)
{
int lc; /* loop counter */
char *msg; /* message returned from parse_opts */
- int Hflag=0; /* binary flag: opt or not */
int page_sz;
#if __WORDSIZE==32 /* 32-bit compiled */
@@ -86,22 +81,16 @@ main(int ac, char **av)
#endif
option_t options[] = {
- { "H:", &Hflag, &Hopt }, /* Required for location of
hugetlbfs */
{ NULL, NULL, NULL } /* NULL required to end array */
};
/* Parse standard options given to run the test. */
- msg = parse_opts(ac, av, options, &help);
+ msg = parse_opts(ac, av, options, NULL);
if (msg != (char *) NULL) {
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help",
msg);
tst_exit();
}
- if (Hflag == 0) {
- tst_brkm(TBROK, NULL, "-H option is REQUIRED for this test, use
-h for options help");
- tst_exit();
- }
-
page_sz = getpagesize();
setup();
@@ -122,8 +111,15 @@ main(int ac, char **av)
addr = mmap(HIGH_ADDR, page_sz, PROT_READ,
MAP_SHARED | MAP_FIXED, fildes, 0);
if (addr != MAP_FAILED) {
- tst_resm(TFAIL, "Normal mmap() into high region
unexpectedly succeeded on %s, errno=%d : %s",
- TEMPFILE, errno, strerror(errno));
+ tst_resm(TFAIL, "Normal mmap() into high region
unexpectedly "
+ "succeeded on %s, errno=%d : %s",
+ TEMPFILE, errno, strerror(errno));
+
+ /* Unmap the mapped memory */
+ if (munmap(addr, page_sz) != 0) {
+ tst_brkm(TFAIL, NULL, "munmap() fails to unmap
the "
+ "memory, errno=%d", errno);
+ }
continue;
} else {
tst_resm(TPASS, "Normal mmap() into high region failed
correctly");
@@ -133,6 +129,7 @@ main(int ac, char **av)
close(fildes);
}
+ close(fildes);
cleanup();
tst_exit();
@@ -149,18 +146,20 @@ main(int ac, char **av)
* Write some known data into file and get the size of the file.
*/
void
-setup()
+setup(void)
{
- char mypid[40];
-
- sprintf(mypid,"/%d",getpid());
- TEMPFILE=strcat(mypid,TEMPFILE);
- TEMPFILE=strcat(Hopt,TEMPFILE);
+ tst_require_root(NULL);
tst_sig(FORK, DEF_HANDLER, cleanup);
-
TEST_PAUSE;
+ tst_tmpdir();
+ mount_point = get_tst_tmpdir();
+
+ mount_hugetlbfs(mount_point);
+ hugepage_alloc(1024);
+
+ snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", mount_point,
getpid());
}
/*
@@ -169,7 +168,7 @@ setup()
* Remove the temporary directory created.
*/
void
-cleanup()
+cleanup(void)
{
/*
* print timing stats if that option was specified.
@@ -177,5 +176,6 @@ cleanup()
TEST_CLEANUP;
unlink(TEMPFILE);
-
+ umount_hugetlbfs(mount_point);
+ tst_rmdir();
}
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
index 4cc6ed4..ba606d4 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
@@ -73,10 +73,11 @@
#include "test.h"
#include "usctest.h"
#include "system_specific_hugepages_info.h"
+#include "lib/libmnt.h"
#define BUFFER_SIZE 256
-char* TEMPFILE="mmapfile";
+char TEMPFILE[MAXPATHLEN];
char *TCID="hugemmap04"; /* Test program identifier. */
int TST_TOTAL=1; /* Total number of test cases. */
@@ -88,40 +89,29 @@ int beforetest=0; /* Amount of free huge pages
before testing */
int aftertest=0; /* Amount of free huge pages after testing */
int hugepagesmapped=0; /* Amount of huge pages mapped after testing */
char *Hopt; /* location of hugetlbfs */
+char *mount_point = NULL;
-void setup(); /* Main setup function of test */
-void cleanup(); /* cleanup function for the test */
-
-void help()
-{
- printf(" -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs \n");
-}
+void setup(void); /* Main setup function of test */
+void cleanup(void); /* cleanup function for the test */
int
main(int ac, char **av)
{
int lc; /* loop counter */
char *msg; /* message returned from parse_opts */
- int Hflag=0; /* binary flag: opt or not */
int huge_pagesize=0;
option_t options[] = {
- { "H:", &Hflag, &Hopt }, /* Required for location of
hugetlbfs */
{ NULL, NULL, NULL } /* NULL required to end array */
};
/* Parse standard options given to run the test. */
- msg = parse_opts(ac, av, options, &help);
+ msg = parse_opts(ac, av, options, NULL);
if (msg != (char *) NULL) {
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help",
msg);
tst_exit();
}
- if (Hflag == 0) {
- tst_brkm(TBROK, NULL, "-H option is REQUIRED for this test, use
-h for options help");
- tst_exit();
- }
-
/* Check number of hugepages */
if (get_no_of_hugepages() <= 0 || hugepages_size() <= 0)
tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
@@ -151,7 +141,7 @@ main(int ac, char **av)
tst_resm(TINFO,"Total amount of free huge pages is
%d",freepages);
tst_resm(TINFO,"Max number allowed for 1 mmap file in 32-bits
is 128");
if (freepages > 128)
- freepages=128;
+ freepages=128;
#endif
/*
* Call mmap
@@ -206,16 +196,18 @@ main(int ac, char **av)
void
setup()
{
- char mypid[40];
-
- sprintf(mypid,"/%d",getpid());
- TEMPFILE=strcat(mypid,TEMPFILE);
- TEMPFILE=strcat(Hopt,TEMPFILE);
+ tst_require_root(NULL);
tst_sig(FORK, DEF_HANDLER, cleanup);
-
TEST_PAUSE;
+ tst_tmpdir();
+ mount_point = get_tst_tmpdir();
+
+ mount_hugetlbfs(mount_point);
+ hugepage_alloc(1024);
+
+ snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", mount_point,
getpid());
}
/*
@@ -232,5 +224,6 @@ cleanup()
TEST_CLEANUP;
unlink(TEMPFILE);
-
+ umount_hugetlbfs(mount_point);
+ tst_rmdir();
}
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/lib/Makefile
b/testcases/kernel/mem/hugetlb/hugemmap/lib/Makefile
new file mode 100644
index 0000000..f37b87a
--- /dev/null
+++ b/testcases/kernel/mem/hugetlb/hugemmap/lib/Makefile
@@ -0,0 +1,25 @@
+#
+# Copyright (c) International Business Machines Corp., 2001
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+# the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+top_srcdir ?= ../../../../../..
+
+include $(top_srcdir)/include/mk/env_pre.mk
+
+LIB := libmnt_hugetlb.a
+
+include $(top_srcdir)/include/mk/lib.mk
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.c
b/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.c
new file mode 100644
index 0000000..ac7fadb
--- /dev/null
+++ b/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.c
@@ -0,0 +1,70 @@
+/*
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * NAME
+ * libmnt.c
+ *
+ * DESCRIPTION
+ * Helper functions for mounting hugetlbfs automatically.
+ *
+ * The library contains the following routines:
+ *
+ * hugepage_alloc()
+ * mount_hugetlbfs()
+ * umount_hugetlbfs()
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/mount.h>
+#include <errno.h>
+#include <sys/stat.h>
+
+#include "test.h"
+
+#include "libmnt.h"
+
+void
+hugepage_alloc(int num)
+{
+ FILE *file = fopen("/proc/sys/vm/nr_hugepages", "w+");
+ if (file == NULL) {
+ tst_brkm(TBROK|TERRNO, NULL, "fopen failed on
/proc/sys/vm/nr_hugepages");
+ }
+
+ if (fprintf(file, "%d", num) < 0) {
+ tst_brkm(TBROK|TERRNO, NULL, "fprintf failed on
/proc/sys/vm/nr_hugepages");
+ }
+
+ fclose(file);
+}
+
+void
+mount_hugetlbfs(char *mount_point)
+{
+ if (mount("none", mount_point, "hugetlbfs", 0, NULL) < 0) {
+ tst_brkm(TBROK|TERRNO, NULL, "mount failed on %s", mount_point);
+ }
+}
+
+void
+umount_hugetlbfs(char *mount_point)
+{
+ umount(mount_point);
+}
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.h
b/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.h
new file mode 100644
index 0000000..b9b26ed
--- /dev/null
+++ b/testcases/kernel/mem/hugetlb/hugemmap/lib/libmnt.h
@@ -0,0 +1,27 @@
+/*
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * libmnt.h - functions to mount hugetlbfs automatically.
+ */
+
+void hugepage_alloc(int num);
+void mount_hugetlbfs(char *mount_point);
+void umount_hugetlbfs(char *mount_point);
+
--
1.7.1
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list