To check effects of this patch. I made a tiny test.These are results when CONFIG_SMP=n
************** test-program ********************
for(i = 0; i < 1000; i++) {
mmap(16 Mega bytes, MAP_ANON);
touch all pages;
munmap(16 Mega bytes);
}
************************************************
Results of this program.
Host : Intex Xeon 1.8GHz x2, Memory 8Gbytes. Multi-user mode.
Reference Kernel --- linux-2.6.9-rc1-mm4
Total 0:35.79 System 33.89 User 1.88
Total 0:35.44 System 33.58 User 1.85
Total 0:35.75 System 33.81 User 1.91
Total 0:35.89 System 34.03 User 1.82
Total 0:35.93 System 34.03 User 1.84
No-bitmap without this micro-optimization patch
Total 0:37.58 System 35.69 User 1.89
Total 0:37.52 System 35.66 User 1.86
Total 0:37.56 System 35.68 User 1.88
Total 0:37.64 System 35.76 User 1.88
Total 0:37.72 System 35.89 User 1.82
No-bitmap with this micro-optimization patch.
Total 0:35.28 System 33.45 User 1.81
Total 0:35.38 System 33.62 User 1.75
Total 0:35.44 System 33.58 User 1.84
Total 0:35.52 System 33.58 User 1.90
Total 0:35.79 System 33.92 User 1.81
Single-user-mode.
reference-kernel linux-2.6.9-rc1-mm4:
Total 0:35.20 System 33.32 User 1.88
Total 0:35.23 System 33.37 User 1.85
Total 0:35.58 System 33.77 User 1.81
Total 0:35.49 System 33.60 User 1.90
Total 0:35.79 System 33.80 User 1.99
No-bitmap without this micro-optimization patch
Total 0:36.83 System 35.16 User 1.67
Total 0:36.45 System 34.66 User 1.79
Total 0:36.81 System 35.10 User 1.70
Total 0:36.89 System 35.24 User 1.65
Total 0:36.82 System 35.14 User 1.68
No-bitmap with this micor-optimization patch:
Total 0:34.97 System 33.07 User 1.89
Total 0:34.94 System 32.98 User 1.95
Total 0:34.99 System 33.11 User 1.87
Total 0:34.90 System 33.14 User 1.76
Total 0:34.92 System 33.02 User 1.90
Results with this patch is better than ones without this by 2 seconds.
2/1000 = 2ms per 1 iteration (for 16 Megabytes alloc/free).