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

Reply via email to