[LTP] [PATCH 2/4] mm/ksm: extend 'max_page_sharing' before ksm testing
Li Wang
liwang@redhat.com
Tue Mar 22 14:42:55 CET 2016
Hi Cyril,
On Tue, Mar 22, 2016 at 9:14 PM, Cyril Hrubis <chrubis@suse.cz> wrote:
> > diff --git a/testcases/kernel/mem/include/mem.h
> b/testcases/kernel/mem/include/mem.h
> > index 43988fe..fbb11b2 100644
> > --- a/testcases/kernel/mem/include/mem.h
> > +++ b/testcases/kernel/mem/include/mem.h
> > @@ -43,6 +43,7 @@ void testoom(int mempolicy, int lite, int retcode, int
> allow_sigkill);
> > /* KSM */
> >
> > #define PATH_KSM "/sys/kernel/mm/ksm/"
> > +int max_page_sharing;
>
> This variable is not used in the library. It does not make sense to
> declare it in the header file.
>
no, it has been used in mem.c file.
see here:
------------
diff --git a/testcases/kernel/mem/lib/
mem.c b/testcases/kernel/mem/lib/mem.c
index 7b5bb35..d37d6a4 100644
--- a/testcases/kernel/mem/lib/mem.c
+++ b/testcases/kernel/mem/lib/mem.c
@@ -502,9 +502,12 @@ void create_same_memory(int size, int num, int unit)
stop_ksm_children(child, num);
tst_resm(TINFO, "KSM merging...");
+ if (access(PATH_KSM "max_page_sharing", F_OK) == 0)
+ SAFE_FILE_PRINTF(cleanup, PATH_KSM "max_page_sharing",
+ "%ld", size * pages * num);
SAFE_FILE_PRINTF(cleanup, PATH_KSM "run", "1");
SAFE_FILE_PRINTF(cleanup, PATH_KSM "pages_to_scan", "%ld",
- size * pages *num);
+ size * pages * num);
SAFE_FILE_PRINTF(cleanup, PATH_KSM "sleep_millisecs", "0");
resume_ksm_children(child, num);
@@ -595,6 +598,9 @@ void test_ksm_merge_across_nodes(unsigned long nr_pages)
SAFE_FILE_PRINTF(cleanup, PATH_KSM "sleep_millisecs", "0");
SAFE_FILE_PRINTF(cleanup, PATH_KSM "pages_to_scan", "%ld",
nr_pages * num_nodes);
+ if (access(PATH_KSM "max_page_sharing", F_OK) == 0)
+ SAFE_FILE_PRINTF(cleanup, PATH_KSM "max_page_sharing",
+ "%ld", nr_pages * num_nodes);
> > void test_ksm_merge_across_nodes(unsigned long nr_pages);
> >
> > diff --git a/testcases/kernel/mem/ksm/ksm01.c
> b/testcases/kernel/mem/ksm/ksm01.c
> > index b62df06..a352abd 100644
> > --- a/testcases/kernel/mem/ksm/ksm01.c
> > +++ b/testcases/kernel/mem/ksm/ksm01.c
> > @@ -105,6 +105,9 @@ void setup(void)
> > tst_brkm(TCONF, NULL, "2.6.32 or greater kernel required");
> > if (access(PATH_KSM, F_OK) == -1)
> > tst_brkm(TCONF, NULL, "KSM configuration is not enabled");
> > + if (access(PATH_KSM "max_page_sharing", F_OK) == 0)
> > + SAFE_FILE_SCANF(NULL, PATH_KSM "max_page_sharing",
> > + "%d", &max_page_sharing);
> >
> > /*
> > * kernel commit 90bd6fd introduced a new KSM sysfs knob
> > @@ -128,4 +131,8 @@ void cleanup(void)
> > if (access(PATH_KSM "merge_across_nodes", F_OK) == 0)
> > FILE_PRINTF(PATH_KSM "merge_across_nodes",
> > "%d", merge_across_nodes);
> > +
> > + if (access(PATH_KSM "max_page_sharing", F_OK) == 0)
> > + FILE_PRINTF(PATH_KSM "max_page_sharing",
> > + "%d", max_page_sharing);
> > }
>
> You are saving and restoring the file in each test. Why can't you just
> add two functions to save and restore it the library instead and call
> them from test setup and cleanup?
>
ok, that's a better way.
>
> It's also quite confusing that the test saves and restores a value while
> it's not modifying it at all. It will be less confusing if it's all done
> in the library.
>
> --
> Cyril Hrubis
> chrubis@suse.cz
>
--
Regards,
Li Wang
Email: liwang@redhat.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20160322/b998aff0/attachment.html>
More information about the ltp
mailing list