Re: memory allocation diagnostics tool

Craig Schlenter (craig@is.co.za)
Mon, 15 Dec 1997 18:20:29 +0200 (SAT)


On Mon, 15 Dec 1997, Marnix Coppens wrote:

> Allright, for those of you who are interested in how Linux is
> using all your physical memory, and why it complains it can't get a free page,
> I've written a small stand-alone module for kernels 2.0.xx that will
> will register two files /proc/memmap and /proc/mempages. I have attached
> the introducing comment which explains in more detail what these files do.
[snip]

I've hacked this somewhat to work with 2.1.72 (I am using modutils-2.1.71
and libc-5.4.38). It could be totally wrong of course since this stuff is
a little over my head and I tried to get it to compile more than anything
else but it seems to work for me ;)

I compiled it with

gcc -D__KERNEL__ -I/usr/src/linux-2.1.72/include -Wall -Wstrict-prototypes
-O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS
-include /usr/src/linux-2.1.72/include/linux/modversions.h -DEXPORT_SYMTAB
-c memmap.c

which is a tad different to the options given in the C source code. I
think the -DMODVERSIONS stuff was the essential bit to make it work for me
(or else insmod moaned about symbols that it couldn't resolve).

All credits to the original author and whoever invented cut-and-paste and
compiler warnings.

YMMV.

Cheers,

--Craig

begin 664 memmap.c.gz
M'XL(",Q,E30``VUE;6UA<"YC`.U9;6_;1A+^3/V*:8I8I$1:+W82I;(%Y!(E
M->J7PK&O!>X*@B*7%A&22Y!+OS3G_WXSLR1%67+.!O*A*,ZP)>[NS.S,SC//
MCN1!KP,](Q%)XF6[O@T>)#(H8P%*@KCUDBC%QZ6`0GE*@`QYD"WOBLCW8D`]
MF=_MDHF+953`313'D(NKJ%`B!W4C(8QB4<`@RZ4_T+N`EP:KB<R[$@49(!OO
M97:71U=+!>9["T9OW[Z!$R]/HUO`E4RD126W9JY8RIL")/KI+[W<\VGGC/YJ
M)VD+\`H(91RCZ$]DH7O>Q7&.OA8BOQ:!#=V%GEF482CR`B=\/>%[_I(%2CTN
M"Q%P#-U03X2Y$-41"$C+9(&;ZX,J!'E7Q@$DGO*7?':R5%FI2*!+BEU`"TT\
M41I*FTS=1(K$\4B#B/P1J4]Y\!2[$4A1I%T%4>K'92#8=S2#'F_QHPX1%G<*
M4\&>X#OYXB6R3-D7G4@=V^*.%LG0%Y&G(J:SRT4F<T6!*UA(J4!%B=B%BU5`
MZ.K>>)6"@B0]B!$_'%`AM?OB6N`^-`V!*/P\6J`OH_$$?OD'^;$%66L)9[A4
M*2>HYF1&>0BRH+*7J4BF9$KOM(8",L5>H+.I3!U*`)B42QK5!V6MQ>5[*2P$
MXZM"O\91E%XQDHSA>.&]&@Z'`/@R'/$3C,#GX5`/AS#<^VDXAM'^>++?:+UN
MM(:U5MDLOFD6PY;)L;^8+$83'(XKDZ_VWPXGC=:DT=JKM1:,IR5B2'L?B3C`
MP\.A66#X7HRIJ8`TP+R4MX,DV5U:'-S(0A/-$7I!@&?$U6J,>84J2X9A(11/
M[C63N:A!ZQ/$>'6?5C6/F`@I;R&OA8WUIH#0CL?-%44X/N]:K/&*[<DH93:1
M-4JQZC,\?C"O$Q?C\-Q"Y:6OK"E$(6?R3Y%+6Y</_E*$9`WHQ]L(AVN93L:7
M.8XSF09DG,-@/B.T09E1&6#QL6.OR;$HE<'V2-_8$POA>!WA+%G7DKHD=^$W
M7=N"JHTP%8A4Y1'".DK1FH\CT(57@#G>'>W>WEIVX[]J:'8A?)GHG++];L%D
MFWH)L]&@TQE0[:!;28;SY+Y'QY\&CA<3G"NBI\.G9,.5[X/C0WT7@',V!B>+
M,@%.*)-(8;F@;:?.A_.;AUXX'T[./EP>S_'!=7^9GY_.CUT7!\='IY>_:S=^
MK&GJ8`6OV<8L5;@;%MN6M*/K*UZ1#$K/]PF/N-#Y,1`AD<K)_.3DW:\N;C]W
M/_]\]/'"F&Q=.YZ??KKXV3!'<'"PJ61MU7E_>7'V\:-A(L_U8;1=YN3=[X9A
M[O<V]:Q.A\`?^4R2!E'@OQYH_C%M9(HB^E.X"OA8=$I<A'I@:JQSJC%G]&:S
M01S@U85`>>2GLL<@M2'&JL51+\MD876^-EJ#'E0;:,SVJO=#WLF9A2ZC]<Z9
M!2ZO3"G%!D=D^-..@=C`!QF726I#%-Q.Z\6>1/=P5)FG\C)Z]&I#3Z0!/6'T
M!E:PR3["`0RMCF'D0I5Y"L[\Z/2?[XY)!`'G'IV^=R\_X]&>79Y>T*3>LN4G
M!@8[8&[F'!S,'3K"!7Y(<'>IC>B#V5:=S;:@`K4J5]<42>KTW%QBY^)JBB))
M#!ZEAOA$D>.CCO]F29G3,3H.1O@5@Z2H^_TZAL,MJ*.C($G#1TO=?Z?=*0_J
MJ&D;XQ[_D#4$T:#)7LX.H7*8](T%(NC+M)*J#9*PI[#`?0VP'1)W9NR@Q6HL
M9M1&G5G5(O%:Y="B.S6,0:_NGA@4Q@-OG!DCIJWF5VJZQVIKM83*2HB;$RU"
MD:Z,_XK&SZO+FW?2;FOM<](F]:8/TB::35@JK*6X)=`29*G?UP>++URPF-1^
M_P_4(*SSD7":#Q]RP"I=V-*Z2KKH?&Y2@>J6:$.>TTDXZ6_8XJ45FBCX^TZ]
M=P6@Q[8A"=*I+.N"1.TVU`_!U&AQ:DQ;VTD1H:X!5U?AA_F#*JR*E3Q`:X1[
MW/V>;B+G._[0I?((37)_^!<FRNJ`7;7)?4;;GM'#-Q3>H,\U?L7;OB+9OQ-Q
M/DJ7L+-3\=I!0VLM`OWAFRSV=;VD,>Y487<A:N+$L\1-BRS'$PY-73TO7@XG
M\2V`?GNY%\`+FSE#&Z=$ICG5RFC<GM<=L9YYW*>:0#8YE9D&_=%,0]S:)G93
M(P-7VJ0*/QSJM'.<%$Q_/1H\;H;+"[\5SLL"7L9E%91AEFD17:5(D=@?7EF@
M-\(=7&H_*J'5I*X0/?L%NUWJ/,W5,LY8=LL&/EGM6VI+I,CT#=.N9JO+3@.<
MP7I`H33!:FJDD)V&GXP5.<]T*>LK0<ORQ/1Q>FZ(;D6@ZPQ*B@1(ISW!KJU$
M[M=]GAVN.;U^<Z_=-7\K?EZ1L"LSD7OTZ;Q8ZVIE1B&NF/7T\OC8WL++R+B(
M&O$%'<>^VRMC18Q:KS[LD^V5%@W;HM_8X":/%)WSXLD:9#R(\B=*9Y(^,FWS
M_QM*D?35\[7XN[&GB:82F4+X$7XFQARE"*)`/%\U%['P"K%5>XLR<-M'WV*%
MQ5WJD\;]]*FXT=?\]T7.JG6P:ZW_(^=_B/YUD<.WXF.44R]J^!@[#^@([[2A
M_1R;&CJ/66W`^IA=%D0HN-PQMCW5EH8VO,:+6T_19?W9/?IX/O\$_P%\.K_\
M=&;#R(9A]?L@H,8M7GOR[OJ;UGK_B=Z?)Y_EP8.C:7SX_C<.=CKX%RE7?UUD
M7LLHH(Z=6V8*N2SJ/MG40VJAR,WZ'Q:F]CJ7$AO_]AE:%GW$H_:*\?<<;8[?
M:MV]M2=XZY*''1^QGY;9AM=LH$RW6F^YMAO+F[JU>HJ*_G_+2NF^\U_$'^$^
$`AH`````
`
end