Mic 的技术点滴:关于linux, wince 6.0...还有其他牢骚 mic's another world http://www.ootroo.com/zblog

page allocation failed

2008-05-09 11:19:05 / 个人分类:linux

查询了一些资料据说有以下的解决方法

1. increase /proc/sys/vm/min_free_kbytes

2. patch the mm patch

<piggin@cyberone.com.au>
yt YdP7{0 [PATCH] mm: tune the page allocator thresholds
c)^ H7x:] {@/{;D0 LUPA开源社区-Z`n/S+@km(@f?
without patch:LUPA开源社区!~&X#{;MHXM+v1W7vq$c
      pages_min   pages_low   pages_high
G3k:Q ws J0 dma        4          8          12
9{.B-h E0|0 normal   234        468         702
Sv0x,r,G7`0 high     128        256         384LUPA开源社区Q8s\cP
LUPA开源社区Q K/O3W^
with patch:LUPA开源社区bXXbw7j$I a
      pages_min   pages_low   pages_highLUPA开源社区m2?,@_XF9m)@
dma       17         21          25LUPA开源社区 nE@!Y J%~H k1M9CV4apF
normal   939       1173        1408LUPA开源社区yeR] p,m@7[
high     128        160         192LUPA开源社区-M/TgE Eua [&a
LUPA开源社区5R@1?J&o$L1V
without patch:LUPA开源社区zbS!mK&rg
                             | GFP_KERNEL        | GFP_ATOMICLUPA开源社区"s/uV uClG
allocate immediately         |   9 dma, 469 norm |  9 dma, 469 normLUPA开源社区0Z`,wn+bg QB e
allocate after waking kswapd |   5 dma, 234 norm |  3 dma,  88 normLUPA开源社区9x0Ew$m3t:D;\7dM
allocate after synch reclaim |   5 dma, 234 norm |  n/aLUPA开源社区;m k+o A;{

:n,D]$T+B']-^x0 with patch:
m/bNs/U)bD?|0                              | GFP_KERNEL         | GFP_ATOMICLUPA开源社区|pTr|!O
allocate immediately         |  22 dma, 1174 norm | 22 dma, 1174 norm
(lc.J8W1`?"j0 allocate after waking kswapd |  18 dma,  940 norm |  6 dma,  440 norm
4@/[(B:Jy^0 allocate after synch reclaim |  18 dma,  940 norm |  n/a
T|)E DbA0 LUPA开源社区SZ(HChT+s
So the buffer between GFP_KERNEL and GFP_ATOMIC allocations is:LUPA开源社区4a`,g8I+u)H;~

0K+]-y5@SpO0j%t0 2.6.8      | 465 dma, 117 norm, 582 tot = 2328K
od gx u})h0 2.6.10-rc  |   2 dma, 146 norm, 148 tot =  592K
u*Y&WaS:B8Y0 patch      |  12 dma, 500 norm, 512 tot = 2048KLUPA开源社区1dL0Lzn:ff,M

&])x"^_1Z8O,xO0 Which is getting pretty good.LUPA开源社区j wTH/j%D(R1}`

yv\z0f zE;s0 kswap starts at:LUPA开源社区,r jw S8?4p
2.6.8     477 dma, 496 norm, 973 totalLUPA开源社区R6\3?3q'a5f:l
2.6.10-rc   8 dma, 468 norm, 476 totalLUPA开源社区NhA#J2w|,L3O\
patched    17 dma, 939 norm, 956 total
*[5?OA%w*mv*c;W`0 LUPA开源社区laglx#S*L9W
So in terms of total pages, that's looking similar to 2.6.8.LUPA开源社区:O&W'UjK-}j/?.b
LUPA开源社区j*Zz` ZiJ W!K-[
Signed-off-by: Andrew Morton <akpm@osdl.org>
WCs4q)Ro0 Signed-off-by: Linus Torvalds torvalds@osdl.org

怎么patch

Yes, as far as I know, the -mm patchset is for the vanilla (www.kernel.org) kernel. To apply a patch to your kernel that you downloaded form www.kernel.org, first make sure that the patch you downloaded is for the kernel version you downloaded. Then extract the kernel source and put the patch in the root kernel source directory (such as /usr/src/linux-2.6.17.1/). Now decompress the patch and enter this command, as root, from that directory:LUPA开源社区iS9G6NR;y5`
LUPA开源社区vT&]dz.s|A0r.Q
Code:
patch -p1 < [TheNameOfThePatchFile]
Note the "<". Forgetting to put that in will probably mess up your patch file.LUPA开源社区m#Y`z5gf
LUPA开源社区/Fs"k+Ro"Nmn.h+S J @xm
Happy patching!
|H0qL9n8bI%m0
+C/G [C.j f.` qZ0--Dane

LUPA开源社区.l'cO&]8|o;U7W
 


TAG: Linux linux

我来说两句

-5 -3 -1 - +1 +3 +5

Open Toolbar