Please ingore this patch! I will resend a new one later! Thanks. On 03/24/2011 04:34 PM, tangchen wrote: > Hi, > > hugemmap test could fail because I didn't mount hugetlbfs by myself. And > I need to unmount it after test. > > In my opinion, > firstly, mounting hugetlbfs on /tmp is not a good idea, because lots of > programs could use /tmp for other purpose. This could cause other tests > fail; > secondly, mounting hugetlbfs could be done automatically. > > This patch creates a directory /huge, and automatically mounts hugetlbfs > on /huge, and echo a large enough to /proc/sys/vm/nr_hugepages before > test starts. Finally, when the test is over, hugetlbfs is unmounted and > /huge is removed automatically. > > Signed-off-by: tangchen<[email protected]> > --- > runtest/hugetlb | 2 +- > testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c | 28 > ++++++++++++++++++- > 2 files changed, 27 insertions(+), 3 deletions(-) > > diff --git a/runtest/hugetlb b/runtest/hugetlb > index 1347f32..1490bda 100644 > --- a/runtest/hugetlb > +++ b/runtest/hugetlb > @@ -1,4 +1,4 @@ > -hugemmap01 hugemmap01 -H/tmp > +hugemmap01 hugemmap01 -H/huge > hugemmap02 hugemmap02 -H/tmp -c10 > hugemmap03 hugemmap03 -H/tmp -I2 -c10 > hugemmap04 hugemmap04 -H/tmp > diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c > b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c > index a9b8a36..569ee0c 100644 > --- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c > +++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c > @@ -69,6 +69,7 @@ > #include<sys/stat.h> > #include<sys/mman.h> > #include<sys/types.h> > +#include<sys/mount.h> > > #include "test.h" > #include "usctest.h" > @@ -85,6 +86,8 @@ 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 hugepagesmapped=0; /* Amount of huge pages mapped after > testing */ > +FILE *nr_hugepages_file = NULL; /* Used for allocate enough hugepages > for test. */ > +char *mount_point = NULL; /* The location where we mount hugetlbfs. */ > > void setup(); /* Main setup function of test */ > int getfreehugepages(); /* Reads free huge pages */ > @@ -121,6 +124,7 @@ main(int ac, char **av) > tst_exit(); > } > > + mount_point = (char *)malloc(sizeof(char) * 50); > setup(); > > for (lc = 0; TEST_LOOPING(lc); lc++) { > @@ -195,6 +199,25 @@ setup() > { > char mypid[40]; > > + mount_point = strcpy(mount_point, Hopt); > + > + if (mkdir(mount_point, 0755)< 0) { > + tst_brkm(TBROK, NULL, "Cannot create directory %s!", mount_point); > + } > + > + if (mount("none", mount_point, "hugetlbfs", 0, NULL)< 0) { > + tst_brkm(TBROK, NULL, "Cannot mount hugetlbfs on %s!", > mount_point); > + } > + > + nr_hugepages_file = fopen("/proc/sys/vm/nr_hugepages", "w+"); > + if (nr_hugepages_file == NULL) { > + tst_brkm(TBROK, NULL, "Cannot open file > /proc/sys/vm/nr_hugepages!"); > + } > + if (fprintf(nr_hugepages_file, "%d", 1024)< 0) { > + tst_brkm(TBROK, NULL, "Cannot write to file > /proc/sys/vm/nr_hugepages!"); > + } > + fclose(nr_hugepages_file); > + > sprintf(mypid,"/%d",getpid()); > TEMPFILE=strcat(mypid,TEMPFILE); > TEMPFILE=strcat(Hopt,TEMPFILE); > @@ -275,5 +298,6 @@ cleanup() > TEST_CLEANUP; > > unlink(TEMPFILE); > - > -} > \ No newline at end of file > + umount(mount_point); > + remove(mount_point); > +} >
-- Best Regards, Tang chen -------------------------------------------------- Tang Chen Development Dept.I Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) No.6 Wenzhu Road, Nanjing, 210012, China TEL: +86+25-86630566-8513 FUJITSU INTERNAL: 7998-8513 FAX: +86+25-83317685 EMail: [email protected] -------------------------------------------------- This communication is for use by the intended recipient(s) only and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not an intended recipient of this communication, you are hereby notified that any dissemination, distribution or copying hereof is strictly prohibited. If you have received this communication in error, please notify me by reply e-mail, permanently delete this communication from your system, and destroy any hard copies you may have printed ------------------------------------------------------------------------------ Enable your software for Intel(R) Active Management Technology to meet the growing manageability and security demands of your customers. Businesses are taking advantage of Intel(R) vPro (TM) technology - will your software be a part of the solution? Download the Intel(R) Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
