public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] page coloring for 2.4.18 kernel
@ 2002-04-07 15:01 Jason Papadopoulos
  2002-06-04 13:16 ` David S. Miller
  0 siblings, 1 reply; 7+ messages in thread
From: Jason Papadopoulos @ 2002-04-07 15:01 UTC (permalink / raw)
  To: linux-kernel


Hello. This is a re-diff of the 2.4.17 patch I posted
previously.

www.boo.net/~jasonp/page_color-2.2.20-20020108.patch
www.boo.net/~jasonp/page_color-2.4.17-20020113.patch
www.boo.net/~jasonp/page_color-2.4.18-20020323.patch

I'm not subscribed to LKML, so please cc responses
to this email address.

Thanks,
jasonp

^ permalink raw reply	[flat|nested] 7+ messages in thread
* Re: [PATCH] page coloring for 2.4.18 kernel
@ 2002-04-09  1:09 Dieter Nützel
  0 siblings, 0 replies; 7+ messages in thread
From: Dieter Nützel @ 2002-04-09  1:09 UTC (permalink / raw)
  To: Jason Papadopoulos; +Cc: Linux Kernel List, Andrea Arcange

Hello Jason,

I would gave page_coloring a go on my Athlon II (0.18µm, L1 128K, L2 512K) 
with 2.4.19-pre5-vm33-preempt+lock-break.

Little rejection in kernel/ksyms.c.rej.

***************
*** 559,561 ****

  EXPORT_SYMBOL(tasklist_lock);
  EXPORT_SYMBOL(pidhash);
--- 559,579 ----

  EXPORT_SYMBOL(tasklist_lock);
  EXPORT_SYMBOL(pidhash);
+
+ #ifdef CONFIG_PAGE_COLORING_MODULE
+ extern unsigned int page_miss_count;
+ extern unsigned int page_hit_count;
+ extern unsigned int page_alloc_count;
+ extern unsigned int page_colors;
+ extern struct list_head *page_color_table;
+ void page_color_start(void);
+ void page_color_stop(void);
+
+ EXPORT_SYMBOL_NOVERS(page_miss_count);
+ EXPORT_SYMBOL_NOVERS(page_hit_count);
+ EXPORT_SYMBOL_NOVERS(page_alloc_count);
+ EXPORT_SYMBOL_NOVERS(page_colors);
+ EXPORT_SYMBOL_NOVERS(page_color_table);
+ EXPORT_SYMBOL_NOVERS(page_color_start);
+ EXPORT_SYMBOL_NOVERS(page_color_stop);
+ #endif

No problem to add by hand but later on I get this:

mm/mm.o: In function `alloc_pages_by_color':
mm/mm.o(.text+0xb64a): undefined reference to `BAD_RANGE'
mm/mm.o(.text+0xb6e6): undefined reference to `BAD_RANGE'
mm/mm.o(.text+0xb760): undefined reference to `BAD_RANGE'
make: *** [vmlinux] Error 1

To solve this I have to move the definition of BAD_RANGE in mm/page_alloc.c 
somewhat more to the beginning of the file.

[-]
unsigned int rand_carry = 0x01234567;
unsigned int rand_seed = 0x89abcdef;

#define MULT 2131995753

/*
 * Temporary debugging check.
 */
#define BAD_RANGE(zone, page)						\
(									\
	(((page) - mem_map) >= ((zone)->zone_start_mapnr+(zone)->size))	\
	|| (((page) - mem_map) < (zone)->zone_start_mapnr)		\
	|| ((zone) != page_zone(page))					\
)
[-]

Apr  9 02:21:08 SunWave1 kernel: page_color: starting with 128 colors

After running "dbench 32" I get the below numbers:

/home/nuetzel> cat /proc/page_color
colors: 128
hits: 479219
misses: 7487
pages allocated: 479310
3 2 0 1 1 0 0 1 1 0 2 0 1 0 0 0 1 0 0 1 0 0 0 2 0 0 1 3 3 0 2 0 1 2 1 0 1 1 0 
0 0 2 1 1 1 0 0 1 1 1 0 0 2 0 2 1 4 3 1 1 1 1 1 2 0 2 2 2 0 0 3 1 1 1 0 1 2 2 
0 0 1 0 0 0 0 2 0 1 1 2 1 0 2 1 3 2 2 0 0 2 1 2 1 1 1 0 1 0 1 2 0 0 0 0 1 0 0 
1 3 1 0 0 4 2 0 1 1 3
0 4 1 1 2 1 0 1 1 1 2 0 4 0 2 3 1 2 0 2 1 1 1 1 0 2 2 1 2 5 2 2 3 2 3 0 2 2 0 
4 0 1 1 2 1 3 4 2 2 1 2 3 1 1 0 3 1 0 4 1 5 0 4 1
2 5 1 3 2 2 5 4 2 4 2 2 4 2 3 6 3 5 3 3 3 1 5 1 5 4 2 1 5 1 4 5
3 6 7 2 4 6 10 4 4 6 7 2 2 7 7 4
8 7 10 4 5 7 8 6
5 2 5 3
2 1
0
0
0
58 61 74 71 65 60 75 70 109 91 64 74 78 77 83 69 82 71 61 68 62 81 72 81 67 63 
83 94 98 74 53 78 77 75 90 74 77 87 92 88 96 86 72 101 79 77 71 74 56 73 88 
69 61 70 83 78 81 88 95 83 92 90 81 80 84 74 64 64 67 69 52 70 94 85 70 80 64 
84 84 87 50 65 64 68 60 66 56 70 74 79 78 76 68 72 77 78 91 86 75 77 84 85 88 
88 91 87 69 74 74 75 67 84 92 68 63 63 81 79 62 66 81 84 58 72 93 81 68 73
125 105 108 100 109 137 117 110 96 124 117 112 115 95 113 141 110 99 127 108 
120 117 113 120 125 101 129 106 116 113 101 133 112 130 102 102 119 122 123 
111 107 91 102 108 102 116 103 87 103 118 116 113 113 123 109 110 102 123 106 
123 104 126 112 129
127 141 139 154 155 150 152 137 151 132 140 156 159 149 140 135 109 139 144 
150 134 122 143 155 150 140 133 159 153 148 129 122
195 155 168 171 177 166 169 166 189 152 178 146 153 161 148 176
162 148 158 161 162 189 152 160
76 67 84 91
22 21
0
0
0

Thanks,
	Dieter



^ permalink raw reply	[flat|nested] 7+ messages in thread
* Re: [PATCH] page coloring for 2.4.18 kernel
@ 2002-04-23 21:51 Dieter Nützel
  2002-04-23 21:53 ` Robert Love
  0 siblings, 1 reply; 7+ messages in thread
From: Dieter Nützel @ 2002-04-23 21:51 UTC (permalink / raw)
  To: Jason Papadopoulos; +Cc: Robert Love, George Anzinger, Linux Kernel List

Page coloring for 2.4.18+ isn't preempt save?

It gave ~10% speedup for memory intensive apps on my single  1 GHz Athlon II 
SlotA (0,18µm, L2 512K) but look the system hard from time to time. Nothing 
in the logs.

I've changed the patch for 2.4.19-pre7 + vm3 + latest rml-O(1) + preempt.

Thanks,
	Dieter

-- 
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
@home: Dieter.Nuetzel@hamburg.de


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-06-04 17:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-04-07 15:01 [PATCH] page coloring for 2.4.18 kernel Jason Papadopoulos
2002-06-04 13:16 ` David S. Miller
2002-06-04 16:59   ` David S. Miller
  -- strict thread matches above, loose matches on Subject: below --
2002-04-09  1:09 Dieter Nützel
2002-04-23 21:51 Dieter Nützel
2002-04-23 21:53 ` Robert Love
2002-04-24  2:48   ` Jason Papadopoulos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox