Skip to contentSkip to conversation

updated create_same_memory() inside lib/mem.c

PATCH Applied Zhouping Liu 3 participants 11 messages Jan 4, 2013 – Jan 14, 2013

lore
Share & tools
lore
#0 lore raw

v2 cover updated create_same_memory() inside lib/mem.c

changed in v2:
- modified '_function_name' as 'function_name'
- added 'static' key word for internal function
- updated a little commit log

Zhouping Liu (2):
mm/lib: rewrote create_same_memory()
mm/include: removed the global var 'memory'

 testcases/kernel/mem/include/_private.h |   2 +-
 testcases/kernel/mem/include/mem.h      |   5 -
 testcases/kernel/mem/lib/mem.c          | 425 +++++++++++++-------------------
 3 files changed, 170 insertions(+), 262 deletions(-)
Signature · 13 lines
1.7.11.7


------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
#1 lore raw

PATCH v2 1/2 mm/lib: rewrote create_same_memory()

create_same_memory() was too large and contained lots of duplicated codes, and it's a little hard-coding, so that it's not easy to read and extend it for new case.

I splited it for five sub-functions:

  ksm_child_memset();
  create_ksm_child();
  stop_ksm_children();
  resume_ksm_children();
  create_smae_memory();

Also I intruduced a data struct to control the mergeable data:

  struct ksm_merge_data {
        char data;
        int mergeable_size;
  };
---
 testcases/kernel/mem/include/_private.h |   2 +-
 testcases/kernel/mem/lib/mem.c          | 425 +++++++++++++-------------------
 2 files changed, 170 insertions(+), 257 deletions(-)
testcases/kernel/mem/include/_private.h +1 -1
index 71164f5..43eda0e 100644
@@ -11,7 +11,7 @@ static void _check(char *path, long int value);
 static void _group_check(int run, int pages_shared, int pages_sharing,
 		int pages_volatile, int pages_unshared,
 		int sleep_millisecs, int pages_to_scan);
-static void _verify(char value, int proc, int start, int end,
+static void _verify(char **memory_new, char value, int proc, int start, int end,
 		int start2, int end2);
 
 /* cpuset/memcg */
testcases/kernel/mem/lib/mem.c +169 -256

490 lines not on this page · raw message

Signature · 13 lines
1.7.11.7


------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
#2 lore raw

PATCH v3 2/2 mm/include: removed the global var 'memory'

we don't use the global var 'memory' any more,
so removed it, and changed local var 'memory_new'
as 'memory'.

---
 testcases/kernel/mem/include/_private.h |  2 +-
 testcases/kernel/mem/include/mem.h      |  5 -----
 testcases/kernel/mem/lib/mem.c          | 34 ++++++++++++++++-----------------
 3 files changed, 18 insertions(+), 23 deletions(-)
testcases/kernel/mem/include/_private.h +1 -1
index 43eda0e..d34d417 100644
@@ -11,7 +11,7 @@ static void _check(char *path, long int value);
 static void _group_check(int run, int pages_shared, int pages_sharing,
 		int pages_volatile, int pages_unshared,
 		int sleep_millisecs, int pages_to_scan);
-static void _verify(char **memory_new, char value, int proc, int start, int end,
+static void _verify(char **memory, char value, int proc, int start, int end,
 		int start2, int end2);
 
 /* cpuset/memcg */
testcases/kernel/mem/include/mem.h +0 -5
index 16a65db..1233493 100644
@@ -36,11 +36,6 @@ void testoom(int mempolicy, int lite, int numa);
 
 #define PATH_SHMMAX		"/proc/sys/kernel/shmmax"
 
-/*
- * memory pointer to identify per process, MB unit, and byte like
- * memory[process No.][MB unit No.][byte No.].
- */
-char ***memory;
 void write_memcg(void);
 void create_same_memory(int size, int num, int unit);
 int  opt_num, opt_size, opt_unit;
testcases/kernel/mem/lib/mem.c +17 -17
index 87d47a8..a827b25 100644
@@ -200,7 +200,7 @@ static void _group_check(int run, int pages_shared, int pages_sharing,
 	_check("pages_to_scan", pages_to_scan);
 }
 
-static void _verify(char **memory_new, char value, int proc,
+static void _verify(char **memory, char value, int proc,
 		    int start, int end, int start2, int end2)
 {
 	int i, j;
@@ -212,14 +212,14 @@ static void _verify(char **memory_new, char value, int proc,
 
 	tst_resm(TINFO, "child %d verifies memory content.", proc);
 	memset(s, value, (end - start) * (end2 - start2));
-	if (memcmp(memory_new[start], s, (end - start) * (end2 - start2))
+	if (memcmp(memory[start], s, (end - start) * (end2 - start2))
 	    != 0)
 		for (j = start; j < end; j++)
 			for (i = start2; i < end2; i++)
-				if (memory_new[j][i] != value)
+				if (memory[j][i] != value)
 					tst_resm(TFAIL, "child %d has %c at "
 						 "%d,%d,%d.",
-						 proc, memory_new[j][i], proc,
+						 proc, memory[j][i], proc,
 						 j, i);
 	free(s);
 }
@@ -241,7 +241,7 @@ static struct ksm_merge_data {
 };
 
 static void ksm_child_memset(int child_num, int size, int total_unit,
-		 struct ksm_merge_data ksm_merge_data, char **memory_new)
+		 struct ksm_merge_data ksm_merge_data, char **memory)
 {
 	int i, j;
 	int unit = size / total_unit;
@@ -260,34 +260,34 @@ static void ksm_child_memset(int child_num, int size, int total_unit,
 
 	for (j = 0; j < total_unit; j++) {
 		for (i = 0; i < unit * MB; i++)
-			memory_new[j][i] = ksm_merge_data.data;
+			memory[j][i] = ksm_merge_data.data;
 	}
 
 	/* if it contains unshared page, then set 'e' char
 	 * at the end of the last page
 	 */
 	if (ksm_merge_data.mergeable_size < size * MB)
-		memory_new[j-1][i-1] = 'e';
+		memory[j-1][i-1] = 'e';
 }
 
 static void create_ksm_child(int child_num, int size, int unit,
 		       struct ksm_merge_data *ksm_merge_data)
 {
 	int j, total_unit;
-	char **memory_new;
+	char **memory;
 
 	/* The total units in all */
 	total_unit = size / unit;
 
-	/* Apply for the space for memory_new */
-	memory_new = (char **)malloc(total_unit * sizeof(char *));
+	/* Apply for the space for memory */
+	memory = (char **)malloc(total_unit * sizeof(char *));
 	for (j = 0; j < total_unit; j++) {
-		memory_new[j] = mmap(NULL, unit * MB, PROT_READ|PROT_WRITE,
+		memory[j] = mmap(NULL, unit * MB, PROT_READ|PROT_WRITE,
 			MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
-		if (memory_new[j] == MAP_FAILED)
+		if (memory[j] == MAP_FAILED)
 			tst_brkm(TBROK|TERRNO, tst_exit, "mmap");
 #ifdef HAVE_MADV_MERGEABLE
-		if (madvise(memory_new[j], unit * MB, MADV_MERGEABLE) == -1)
+		if (madvise(memory[j], unit * MB, MADV_MERGEABLE) == -1)
 			tst_brkm(TBROK|TERRNO, tst_exit, "madvise");
 #endif
 	}
@@ -300,7 +300,7 @@ static void create_ksm_child(int child_num, int size, int unit,
 	for (j = 0; j < 4; j++) {
 
 		ksm_child_memset(child_num, size, total_unit,
-				  ksm_merge_data[j], memory_new);
+				  ksm_merge_data[j], memory);
 
 		fflush(stdout);
 
@@ -309,12 +309,12 @@ static void create_ksm_child(int child_num, int size, int unit,
 			tst_brkm(TBROK|TERRNO, tst_exit, "kill");
 
 		if (ksm_merge_data[j].mergeable_size < size * MB) {
-			_verify(memory_new, 'e', child_num, total_unit - 1,
+			_verify(memory, 'e', child_num, total_unit - 1,
 				total_unit, unit * MB - 1, unit * MB);
-			_verify(memory_new, ksm_merge_data[j].data, child_num,
+			_verify(memory, ksm_merge_data[j].data, child_num,
 				0, total_unit, 0, unit * MB - 1);
 		} else {
-			_verify(memory_new, ksm_merge_data[j].data, child_num,
+			_verify(memory, ksm_merge_data[j].data, child_num,
 				0, total_unit, 0, unit * MB);
 		}
 	}
Signature · 13 lines
1.7.11.7


------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
#7 lore raw
In reply to Zhouping Liu
Quoted 5 lines · Zhouping Liu

changed in v2:
- modified '_function_name' as 'function_name'
- added 'static' key word for internal function
- updated a little commit log

Quoted 9 lines

Zhouping Liu (2):
mm/lib: rewrote create_same_memory()
mm/include: removed the global var 'memory'

  testcases/kernel/mem/include/_private.h |   2 +-
  testcases/kernel/mem/include/mem.h      |   5 -
  testcases/kernel/mem/lib/mem.c          | 425 +++++++++++++-------------------
  3 files changed, 170 insertions(+), 262 deletions(-)

Since there is no function updated in the patch, I'm OK to apply it if a unit-test is executed (better testing in a wide range of systems) and get ACKs from other reviewers. Zhouping, would you mind pasting some test details against your patch before we apply it?

Caspar

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#8 lore raw
Quoted 17 lines · Caspar Zhang
Quoted 9 lines · Zhouping Liu

changed in v2:
- modified '_function_name' as 'function_name'
- added 'static' key word for internal function
- updated a little commit log

Zhouping Liu (2):
mm/lib: rewrote create_same_memory()
mm/include: removed the global var 'memory'

Quoted 6 lines
  testcases/kernel/mem/include/_private.h |   2 +-
  testcases/kernel/mem/include/mem.h      |   5 -
  testcases/kernel/mem/lib/mem.c          | 425 
+++++++++++++-------------------
  3 files changed, 170 insertions(+), 262 deletions(-)
Quoted 4 lines

Since there is no function updated in the patch, I'm OK to apply it if a unit-test is executed (better testing in a wide range of systems) and get ACKs from other reviewers. Zhouping, would you mind pasting some test details against your patch before we apply it?

This is an example of output log with the patch on Fedora 17:

[root@ZhoupingLiu ksm]# ./ksm01 -s 1 -n 6

ksm01       0  TINFO  :  child 0 stops.
ksm01       0  TINFO  :  child 1 stops.
ksm01       0  TINFO  :  child 2 stops.
ksm01       0  TINFO  :  child 3 stops.
ksm01       0  TINFO  :  wait for all children to stop.
ksm01       0  TINFO  :  child 4 stops.
ksm01       0  TINFO  :  child 5 stops.
ksm01       0  TINFO  :  KSM merging...
ksm01       0  TINFO  :  resume all children.
ksm01       0  TINFO  :  child 0 continues...
ksm01       0  TINFO  :  child 1 continues...
ksm01       0  TINFO  :  child 0 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 1 allocates 1 MB filled with 'a'
ksm01       0  TINFO  :  child 4 continues...
ksm01       0  TINFO  :  child 4 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 2 continues...
ksm01       0  TINFO  :  child 2 allocates 1 MB filled with 'a'
ksm01       0  TINFO  :  child 3 continues...
ksm01       0  TINFO  :  child 3 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 0 stops.
ksm01       0  TINFO  :  child 2 stops.
ksm01       0  TINFO  :  child 3 stops.
ksm01       0  TINFO  :  child 5 continues...
ksm01       0  TINFO  :  child 5 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 4 stops.
ksm01       0  TINFO  :  child 1 stops.
ksm01       0  TINFO  :  child 5 stops.
ksm01       0  TINFO  :  ksm daemon takes 20s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 1.
ksm01       0  TINFO  :  pages_shared is 2.
ksm01       0  TINFO  :  pages_sharing is 1534.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 0.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.
ksm01       0  TINFO  :  wait for all children to stop.
ksm01       0  TINFO  :  resume all children.
ksm01       0  TINFO  :  child 1 verifies memory content.
ksm01       0  TINFO  :  child 0 verifies memory content.
ksm01       0  TINFO  :  child 2 verifies memory content.
ksm01       0  TINFO  :  child 1 continues...
ksm01       0  TINFO  :  child 0 continues...
ksm01       0  TINFO  :  child 2 continues...
ksm01       0  TINFO  :  child 1 allocates 1 MB filled with 'b'
ksm01       0  TINFO  :  child 0 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 2 allocates 1 MB filled with 'a'
ksm01       0  TINFO  :  child 2 stops.
ksm01       0  TINFO  :  child 4 verifies memory content.
ksm01       0  TINFO  :  child 5 verifies memory content.
ksm01       0  TINFO  :  child 0 stops.
ksm01       0  TINFO  :  child 1 stops.
ksm01       0  TINFO  :  child 3 verifies memory content.
ksm01       0  TINFO  :  child 4 continues...
ksm01       0  TINFO  :  child 5 continues...
ksm01       0  TINFO  :  child 5 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 4 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 3 continues...
ksm01       0  TINFO  :  child 3 allocates 1 MB filled with 'c'
ksm01       0  TINFO  :  child 5 stops.
ksm01       0  TINFO  :  child 3 stops.
ksm01       0  TINFO  :  child 4 stops.
ksm01       0  TINFO  :  ksm daemon takes 20s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 1.
ksm01       0  TINFO  :  pages_shared is 3.
ksm01       0  TINFO  :  pages_sharing is 1533.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 0.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.
ksm01       0  TINFO  :  wait for all children to stop.
ksm01       0  TINFO  :  resume all children.
ksm01       0  TINFO  :  child 1 verifies memory content.
ksm01       0  TINFO  :  child 0 verifies memory content.
ksm01       0  TINFO  :  child 2 verifies memory content.
ksm01       0  TINFO  :  child 1 continues...
ksm01       0  TINFO  :  child 1 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 0 continues...
ksm01       0  TINFO  :  child 2 continues...
ksm01       0  TINFO  :  child 0 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 2 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 3 verifies memory content.
ksm01       0  TINFO  :  child 3 continues...
ksm01       0  TINFO  :  child 3 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 1 stops.
ksm01       0  TINFO  :  child 0 stops.
ksm01       0  TINFO  :  child 2 stops.
ksm01       0  TINFO  :  child 5 verifies memory content.
ksm01       0  TINFO  :  child 4 verifies memory content.
ksm01       0  TINFO  :  child 5 continues...
ksm01       0  TINFO  :  child 5 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 3 stops.
ksm01       0  TINFO  :  child 4 continues...
ksm01       0  TINFO  :  child 4 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 5 stops.
ksm01       0  TINFO  :  child 4 stops.
ksm01       0  TINFO  :  ksm daemon takes 20s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 1.
ksm01       0  TINFO  :  pages_shared is 1.
ksm01       0  TINFO  :  pages_sharing is 1535.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 0.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.
ksm01       0  TINFO  :  wait for all children to stop.
ksm01       0  TINFO  :  resume all children.
ksm01       0  TINFO  :  child 1 verifies memory content.
ksm01       0  TINFO  :  child 0 verifies memory content.
ksm01       0  TINFO  :  child 2 verifies memory content.
ksm01       0  TINFO  :  child 4 verifies memory content.
ksm01       0  TINFO  :  child 1 continues...
ksm01       0  TINFO  :  child 1 allocates 1 MB filled with 'd' except 
one page with 'e'
ksm01       0  TINFO  :  child 0 continues...
ksm01       0  TINFO  :  child 2 continues...
ksm01       0  TINFO  :  child 0 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 2 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 4 continues...
ksm01       0  TINFO  :  child 4 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 1 stops.
ksm01       0  TINFO  :  child 0 stops.
ksm01       0  TINFO  :  child 2 stops.
ksm01       0  TINFO  :  child 3 verifies memory content.
ksm01       0  TINFO  :  child 5 verifies memory content.
ksm01       0  TINFO  :  child 3 continues...
ksm01       0  TINFO  :  child 3 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 4 stops.
ksm01       0  TINFO  :  child 5 continues...
ksm01       0  TINFO  :  child 5 allocates 1 MB filled with 'd'
ksm01       0  TINFO  :  child 3 stops.
ksm01       0  TINFO  :  child 5 stops.
ksm01       0  TINFO  :  ksm daemon takes 20s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 1.
ksm01       0  TINFO  :  pages_shared is 1.
ksm01       0  TINFO  :  pages_sharing is 1534.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 1.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.
ksm01       0  TINFO  :  wait for all children to stop.
ksm01       0  TINFO  :  KSM unmerging...
ksm01       0  TINFO  :  resume all children.
ksm01       0  TINFO  :  child 1 verifies memory content.
ksm01       0  TINFO  :  child 1 verifies memory content.
ksm01       0  TINFO  :  child 0 verifies memory content.
ksm01       0  TINFO  :  child 4 verifies memory content.
ksm01       0  TINFO  :  child 4 finished.
ksm01       0  TINFO  :  child 1 finished.
ksm01       0  TINFO  :  child 0 finished.
ksm01       0  TINFO  :  child 5 verifies memory content.
ksm01       0  TINFO  :  child 5 finished.
ksm01       0  TINFO  :  child 2 verifies memory content.
ksm01       0  TINFO  :  child 3 verifies memory content.
ksm01       0  TINFO  :  child 2 finished.
ksm01       0  TINFO  :  child 3 finished.
ksm01       0  TINFO  :  ksm daemon takes 10s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 2.
ksm01       0  TINFO  :  pages_shared is 0.
ksm01       0  TINFO  :  pages_sharing is 0.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 0.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.
ksm01       0  TINFO  :  stop KSM.
ksm01       0  TINFO  :  ksm daemon takes 10s to scan all mergeable pages
ksm01       0  TINFO  :  check!
ksm01       0  TINFO  :  run is 0.
ksm01       0  TINFO  :  pages_shared is 0.
ksm01       0  TINFO  :  pages_sharing is 0.
ksm01       0  TINFO  :  pages_volatile is 0.
ksm01       0  TINFO  :  pages_unshared is 0.
ksm01       0  TINFO  :  sleep_millisecs is 0.
ksm01       0  TINFO  :  pages_to_scan is 1536.

Thanks,
Zhouping

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#9 lore raw
Quoted 1 line · Zhouping Liu

This is an example of output log with the patch on Fedora 17:

Nice.

Is there a higher coverage of test result (ksm01-05 and on NUMA system / large system / small system, etc)?

Caspar

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#10 lore raw
Quoted 7 lines · Caspar Zhang
Quoted 1 line · Zhouping Liu

This is an example of output log with the patch on Fedora 17:

Nice.

Is there a higher coverage of test result (ksm01-05 and on NUMA system / large system / small system, etc)?

yes, I tested it on i386/x86_64/ppc64 arch, also did it on NUMA system, ksm0[1-5] all PASSed.

Thanks,
Zhouping

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Acked-by on v2 1/2
#5 lore raw

Re: [LTP] [PATCH v2 1/2] mm/lib: rewrote create_same_memory()

In reply to Zhouping Liu
Quoted 12 lines · Zhouping Liu

create_same_memory() was too large and contained lots of duplicated codes, and it's a little hard-coding, so that it's not easy to read and extend it for new case.

I splited it for five sub-functions:

  ksm_child_memset();
  create_ksm_child();
  stop_ksm_children();
  resume_ksm_children();
  create_smae_memory();
Quoted 8 lines

Also I intruduced a data struct to control the mergeable data:

  struct ksm_merge_data {
        char data;
        int mergeable_size;
  };

I have no objection.

Thanks,
Wanlong Gao

------------------------------------------------------------------------------
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and more. Get SQL Server skills now (including 2012) with LearnDevNow - 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Acked-by on v3 2/2
#3 lore raw

Re: [LTP] [PATCH v3 2/2] mm/include: removed the global var 'memory'

In reply to Zhouping Liu
Quoted 5 lines · Zhouping Liu

we don't use the global var 'memory' any more,
so removed it, and changed local var 'memory_new'
as 'memory'.

------------------------------------------------------------------------------
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and more. Get SQL Server skills now (including 2012) with LearnDevNow - 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Applied
#6 lore raw

Re: [LTP] [PATCH v2 1/2] mm/lib: rewrote create_same_memory()

In reply to Zhouping Liu
Quoted 12 lines · Zhouping Liu

create_same_memory() was too large and contained lots of duplicated codes, and it's a little hard-coding, so that it's not easy to read and extend it for new case.

I splited it for five sub-functions:

  ksm_child_memset();
  create_ksm_child();
  stop_ksm_children();
  resume_ksm_children();
  create_smae_memory();
Quoted 8 lines

Also I intruduced a data struct to control the mergeable data:

  struct ksm_merge_data {
        char data;
        int mergeable_size;
  };

Applied, thank you.

Wanlong Gao

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Applied
#4 lore raw

Re: [LTP] [PATCH v3 2/2] mm/include: removed the global var 'memory'

In reply to Zhouping Liu
Quoted 5 lines · Zhouping Liu

we don't use the global var 'memory' any more,
so removed it, and changed local var 'memory_new'
as 'memory'.

Applied, thank you.

Wanlong Gao

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list