<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Xiao,</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 3, 2019 at 7:56 PM Xiao Liang <<a href="mailto:xiliang@redhat.com">xiliang@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">When the system's Hugepagesize is large(eg. 512MiB), the test may<br>
break as cannot set nr_hugepages to default 128.<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">Yes, that's true. But each of ltp/hugemmap test has a parameter(hugemmap01 -s #nr_hpage#) to reset the nr_huagepges number before testing. What we have done to avoid that is to customize the hugetlb runtest file via a wrapper script.</div><div class="gmail_default" style="font-size:small"></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
This patch checks the memory available and Hugepagesize registered<br>
to set a reasonable num.<br></blockquote><div><br></div><div><div class="gmail_default" style="">I have no objection on this way. But a better way maybe to achieve a new function in the hugetlb library to reset nr_hugepages dynamically for the whole hugepage tests.</div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
With this patch:<br>
tst_test.c:1096: INFO: Timeout per run is 0h 05m 00s<br>
hugemmap01.c:99: INFO: max page available count is 54<br>
mem.c:814: INFO: set nr_hugepages to 54<br>
hugemmap01.c:73: PASS: call succeeded<br>
mem.c:814: INFO: set nr_hugepages to 0<br>
<br>
Without this patch:<br>
tst_test.c:1096: INFO: Timeout per run is 0h 05m 00s<br>
mem.c:814: INFO: set nr_hugepages to 128<br>
mem.c:823: BROK: nr_hugepages = 54, but expect 128<br>
mem.c:814: INFO: set nr_hugepages to 0<br>
<br>
Signed-off-by: Xiao Liang <<a href="mailto:xiliang@redhat.com" target="_blank">xiliang@redhat.com</a>><br>
---<br>
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c | 14 +++++++++++++-<br>
 1 file changed, 13 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c<br>
index 4dc330dc0..ea2f42827 100644<br>
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c<br>
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c<br>
@@ -89,14 +89,26 @@ static void test_hugemmap(void)<br>
<br>
 void setup(void)<br>
 {<br>
+       long page_sz = 0;<br>
+       long mem_avail = 0;<br>
+       long max_pages = 0;<br>
+<br>
+       page_sz = SAFE_READ_MEMINFO("Hugepagesize:");<br>
+       mem_avail = SAFE_READ_MEMINFO("MemAvailable:");<br>
+       max_pages = mem_avail/page_sz;<br>
+       tst_res(TINFO, "max page available count is %ld", max_pages);<br>
+<br>
        save_nr_hugepages();<br>
<br>
        if (!Hopt)<br>
                Hopt = tst_get_tmpdir();<br>
        SAFE_MOUNT("none", Hopt, "hugetlbfs", 0, NULL);<br>
<br>
-       if (nr_opt)<br>
+       if (nr_opt) {<br>
                hugepages = SAFE_STRTOL(nr_opt, 0, LONG_MAX);<br>
+       } else {<br>
+               hugepages=(page_sz*hugepages>mem_avail)?max_pages:hugepages;<br>
+       }<br>
        set_sys_tune("nr_hugepages", hugepages, 1);<br>
<br>
        snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", Hopt, getpid());<br>
-- <br>
2.17.2<br>
<br>
<br>
-- <br>
Mailing list info: <a href="https://lists.linux.it/listinfo/ltp" rel="noreferrer" target="_blank">https://lists.linux.it/listinfo/ltp</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div></div></div></div>