Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 Mar 2002 21:41:18 +0900
From:      Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        Terry Lambert <tlambert2@mindspring.com>, Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>, arch@FreeBSD.ORG
Subject:   Re: reclaiming v_data of free vnodes
Message-ID:  <200203031242.g23CfIfu059069@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp>
In-Reply-To: <200202260923.g1Q9NkVh093544@rina.r.dl.itc.u-tokyo.ac.jp>
References:  <200202231556.g1NFu9N9040749@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <200202242041.g1OKfXt95731@apollo.backplane.com> <200202250325.g1P3PVN9092431@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <200202250444.g1P4i8X29005@apollo.backplane.com> <200202251437.g1PEb12R001419@bunko> <3C7A5D24.E11A6693@mindspring.com> <200202251754.g1PHsTs50126@apollo.backplane.com> <200202260923.g1Q9NkVh093544@rina.r.dl.itc.u-tokyo.ac.jp>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Attached is the patch to use the zone allocator for in-core inodes.

On Tue, 26 Feb 2002 18:23:45 +0900,
  Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> said:

Seigo> AFAIK, all of ffs, ifs and ext2fs utilize struct inode and
Seigo> dinode. They deal with the filesystem-specific data by a union. All of
Seigo> the filesystems should thus be able to share a single zone.

However, the usage of a few of the members (eg i_spare) depends on the
filesystem. So I actually gave a distinct zone for each of ffs, ifs
and ext2fs. This also gives the better modularity of the filesystem
than a single zone.

The patch includes the following optimization to the initialization of
a new in-core inode as well:

 - Do not clear the members filled in *_vget().
 - Since NODQUOT is defined as NULL, clear i_dquot only in
   ufs_reclaim().

Finally, the result of vmstat -mz on cvsup.jp.FreeBSD.org follows the
patch. At that time, the host was up for a few hours, during which I
took du(1) over the whole cvsup tree.


[-- Attachment #2 --]
<<is8_NW$KuǤS{ƻ;bQ"hcBlJl{ 	RDĻD	xzIxydF·-2WNTz]
`v2l:Nec	Ϭ7Sc{0]zK=qu~MlZw?}S˫':[qb}E[5uYc]e`Ňwtk^x;DO-I/'%`mB˭C9д\_UjjhRԸI8Nd4=EZ2=F#](LT#[o>I"RhLy=A;Pd$7d䨒&"זFHCo' KP%m+UrMT1ϔ"̘SWQpVW;U^'m i	"O2$}yk󯗯̳7kLݒU2j [5F4"4:e].gl
ռqU"nEq,bA{}ʲ'=<zv"Ne}?AyôPʨ!Yv#V, kl^
nba>as
Hsi^TlЄE]IQH	Qcm8ZbgjϢhF-GӇH;$A5TU#;&۸I&5$T]-B%$	Ad]ɑB}ѭE^ꪚ|CfjᮭBƆl88N}
LvҗI}_{.h`hBXm(M-iJ-;f]4>e6"O {n B7}Iཞ_ggg2edy2Qz#Bbt֩NX63
+%M&ёB,hhJ%ؒ1ۇ.{a:~qyW?&j-,͸MM58hÎ{?%Km|	V5QyyY}c)&:"QI6I`k-ݩr3`樏Ui2Y57? JN.߉Hfp%個
8[y
@K7e*]8.s-W`LXb͹v1l6=fwVp/B@H0+މla%1\x{	i;<b+\ˊ[¢;?qAjED҅Oݎ![N
lDfO9b@^Kxkx!.C:1eWF~U;a o7<	Z$WT
p(˳3f'Ž""@irRG謤
DPMG;˿]P- EA<Z VuTcRh,IXE1VEY:>9X70,^Ip'E#f)X_/w{$$ɟ.HNS
RŅey"/Y92#0_]<*a-A(Tu
NAu?&Wϰ
D0HzMbP !ŝ%<fB!CAY-YHxa2RzB)DmŽQǸ
r(r9PD;f^i5<eYMpfslt#o
ZX@]YF?1G~<KEiR+ ̰#6ZNF3ҭYCXCF}\2!	4N&Gu47#%}o%Z"xDTOT
&䏊."ou60tyHWV*b9,-^ml[7ɻʜ6u߅f7'M1{~Y9} |ac}P_<RF61ZrA{6ҔiVct,j?5
vVgZm޸ßFnQ_
b;E牣F*JYAjfe(oghk+4oYqvUE6CI`yj|'yN|+E҆
@:=fI	UGb9&l%?D#4^.c%%*\+׿Ua^Woӊb!'3aTԦv
-#(Iw0.3YԈk-WZ?8\eu~:L2?\Ōu'ŌL'm-[ʲ+@bytߵX\3cLhᥧb1AȠfq蚥[H)l2C1
d~4T"}i2XX•󧯞Iʠ6EDbK0H1q'[O" !9:r$02\yy6v{ԟE_ybԀBA/t>^/6T⩧4F9uSx#Ƈ0>_.},F1968$fh$aգ
T]C<{%/0G!	о]''Yr/h
<;(6uWS &P;aQNo/xQgfʹaZB8ʐ8
1{ƾWV&L17F*@Uoϼ
d2I)4Z1tT3Rv~m^<9&F{c>&Ycg[V^
9@#"ZX)F x\.a*m'H\"0
C^!QI"yD
cuL
#.IW]v0d&cwMH(Rsm]nKitVD,[gܮ^nE{FU(r{@*w00JҦاh$>-$ܛ%ϨWRʨ{c,W*SIMݶYB8Wm*VIC4;QH_ÐaSRBUP6/L׺t\Ru<-NnZ12є߃a1"ҷl2.םzm|%z]_IR=M(`QV!+EzV
AK#Dc0!*C9MhG ) َ2m8!9`Q<rpV1/n^N2Gp2*cJ^RcQ($d^YK7яWaܮ	a=>NRH\
3`bt<;M00$JICtq9:EKi5c1[FY|Bo^"GO6JӫOAn _GZK=y*yͳ_qԣZq mL.e<]pE7Tcƻ/.H8:.#zd=2u<2Q
R]|?6TQG?~̹gWVRgiM*7hMgLIan/o̳˛hID[f6b7w{~KhQ>TX-;Qih`!l4n^<{yBtǔN5y%ab}uYQ/(S[nV97t Yْe.M@%ƣ!wd-Q~/" CofvJ,&P
""{"C$4L@^s0r̙H'Zf~դRlaQR>u49>ۧ&|lQLPdD*>p"Ȫ&#}Bt#Œ)߉mQl<GbDo2/2bB&0c`(Ep:*2
;$d5Ȫ
1=}t)Gs;M̂NzףZ0af	)^,7mDK
5J.BVx˱!_~($H1;	,}*""8C	#r9|u>Ep
娳I:娣QN:yrnՈ`O+c=`殓[wPtR
evѬ`iTY	`cD"}xW>>G;ma]nCl~!w?q=?JQR<O_*F<[=`Pu4b)6)2Sn*WD?H7_@_%U&=!.
oUHav+!λ^j2ԈJQr6&kY?{!C˓UZ67l7AHG)R.F]o)`S QMv|oS rIz\t#&&)oИ[#Va<
H(ϬX+3
ȫhI9L)1}UuYpg+squ-S
QP 6K(;P%3vx0`Iap͗"j?(*s(LrZq{i#FPZ|*,I^tʄjʂCrRFôpJv¾uOzMBYΪVr<&]
[-- Attachment #3 --]


[-- Attachment #4 --]
Memory statistics by bucket size
Size   In Use   Free   Requests  HighWater  Couldfree
  16     1147   1413   11388727    1280       9391
  32     1795   5885    1049592     640       1668
  64   377911  63561   14943019     320        176
 128    59718  51130    1628292     160      17048
 256     3945  38407    1457347      80      94181
 512     4643 114285    1167114      40      47681
  1K       93   2615     389590      20     195559
  2K       19    263      11722      10       8816
  4K      150      3       2074       5          0
  8K        4      4       1695       5          0
 16K       15      0         15       5          0
 32K        3      0          9       5          0
 64K        1      0          1       5          0
128K        2      0          2       5          0
256K        2      0          2       5          0
512K        6      0          6       5          0

Memory usage type by bucket size
Size  Type(s)
  16  nexusdev, UFS dirhash, newdirblk, p1003.1b, NFSV3 srvdesc,
	  ip6_moptions, in6_multi, igmp, routetbl, ether_multi, vnodes, mount,
	  pcb, soname, rman, mbufmgr, bus, sysctloid, sysctl, ip6ndp, temp,
	  devbuf, linker, atexit, proc-args, acpica, acpidev, DEVFS
  32  atkbddev, UFS dirhash, dirrem, mkdir, diradd, freefile, freefrag,
	  indirdep, bmsafemap, newblk, tseg_qent, in_multi, routetbl,
	  ether_multi, ifaddr, vnodes, cluster_save buffer, pcb, soname, sbuf,
	  mbufmgr, eventhandler, bus, SWAP, sysctloid, sysctl, uidinfo, temp,
	  devbuf, lockf, linker, proc-args, sigio, acpica, pfs_vncache
  64  UFS dirhash, allocindir, allocdirect, pagedep, NFS daemon, NFS req,
	  in6_multi, fragment, routetbl, ether_multi, BPF, vnodes,
	  cluster_save buffer, vfscache, pcb, iov, rman, mbufmgr, bus,
	  sysctloid, sysctl, subproc, module, acpisem, ip6ndp, temp, devbuf,
	  lockf, ithread, proc-args, file, acpica, isadev
 128  ZONE, ppbusdev, UFS dirhash, freeblks, inodedep, NFS srvsock,
	  fragment, ip_moptions, routetbl, vnodes, mount, vfscache, soname,
	  ttys, iov, taskqueue, mbufmgr, eventhandler, bus, timecounter, cred,
	  session, pgrp, module, ip6ndp, temp, devbuf, ithread, zombie,
	  proc-args, acpica, pfs_nodes, DEVFS
 256  UFS mount, UFS dirhash, newblk, NFS daemon, NFSV3 srvdesc, routetbl,
	  ifaddr, vnodes, Export Host, vfscache, iov, bus, subproc, temp,
	  devbuf, linker, proc-args, kqueue, file desc, dev_t, acpica
 512  UFS dirhash, NFS daemon, NFSV3 diroff, routetbl, lo, ifaddr, mount,
	  vfscache, BIO buffer, ptys, ttys, msg, iov, ioctlops, bus, ip6ndp,
	  temp, devbuf, file desc, acpica
  1K  UFS dirhash, BIO buffer, sem, ioctlops, MD disk, bus, uidinfo, temp,
	  devbuf, kqueue, acpica
  2K  UFS mount, UFS dirhash, ifaddr, BIO buffer, pcb, bus, temp, devbuf
  4K  memdesc, UFS mount, UFS dirhash, sem, msg, sbuf, kobj, bus, proc,
	  temp, devbuf
  8K  UFS mount, UFS dirhash, indirdep, syncache, temp, DEVFS
 16K  shm, msg, devbuf
 32K  mbufmgr, temp, devbuf, pfs_fileno
 64K  temp
128K  pagedep, mbufmgr
256K  VM pgdata, UFS mount
512K  UFS ihash, inodedep, NFS hash, vfscache, SWAP, ISOFS mount

Memory statistics by type                          Type  Kern
        Type  InUse MemUse HighUse  Limit Requests Limit Limit Size(s)
     atkbddev     2     1K      1K102400K        2    0     0  32
     nexusdev     7     1K      1K102400K        7    0     0  16
      memdesc     1     4K      4K102400K        1    0     0  4K
         ZONE    18     3K      3K102400K       18    0     0  128
    VM pgdata     1   256K    256K102400K        1    0     0  256K
     ppbusdev     3     1K      1K102400K        3    0     0  128
    UFS mount    18   176K    176K102400K       18    0     0  256,2K,4K,8K,256K
    UFS ihash     1   512K    512K102400K        1    0     0  512K
  UFS dirhash  4303  2138K   2356K102400K    53079    0     0  16,32,64,128,256,512,1K,2K,4K,8K
    newdirblk     2     1K      1K102400K      270    0     0  16
       dirrem     0     0K    188K102400K    11739    0     0  32
        mkdir     1     1K      1K102400K      620    0     0  32
       diradd   139     5K     11K102400K    13744    0     0  32
     freefile     1     1K    188K102400K     8913    0     0  32
     freeblks    46     6K    752K102400K    67593    0     0  128
     freefrag     8     1K      7K102400K   206189    0     0  32
   allocindir    20     2K    176K102400K    99164    0     0  64
     indirdep     7     1K     33K102400K     3317    0     0  32,8K
  allocdirect   243    16K    106K102400K   410504    0     0  64
    bmsafemap    78     3K     10K102400K    46266    0     0  32
       newblk     1     1K      1K102400K   509669    0     0  32,256
     inodedep   249   543K   1265K102400K    82286    0     0  128,512K
      pagedep     7   129K    133K102400K     3165    0     0  64,128K
     p1003.1b     1     1K      1K102400K        1    0     0  16
   NFS daemon    85    15K     15K102400K       85    0     0  64,256,512
NFSV3 srvdesc     1     1K      6K102400K  2598298    0     0  16,256
  NFS srvsock     2     1K      1K102400K        2    0     0  128
     NFS hash     1   512K    512K102400K        1    0     0  512K
 NFSV3 diroff     8     4K      4K102400K       14    0     0  512
      NFS req     0     0K      2K102400K   191730    0     0  64
 ip6_moptions     2     1K      1K102400K        6    0     0  16
    in6_multi     8     1K      1K102400K       16    0     0  16,64
     fragment     0     0K      1K102400K      132    0     0  64,128
     syncache     1     8K      8K102400K        1    0     0  8K
    tseg_qent     0     0K      3K102400K    54453    0     0  32
  ip_moptions     1     1K      1K102400K        3    0     0  128
     in_multi     3     1K      1K102400K        4    0     0  32
         igmp     1     1K      1K102400K        1    0     0  16
     routetbl   295    41K     70K102400K     4851    0     0  16,32,64,128,256,512
           lo     1     1K      1K102400K        1    0     0  512
  ether_multi    38     2K      2K102400K       58    0     0  16,32,64
       ifaddr    25     8K      8K102400K       25    0     0  32,256,512,2K
          BPF     4     1K      1K102400K        4    0     0  64
       vnodes    27     7K      7K102400K      347    0     0  16,32,64,128,256
  Export Host    42    11K     11K102400K       42    0     0  256
        mount    17     9K      9K102400K       61    0     0  16,128,512
cluster_save buffer     0     0K      1K102400K    69898    0     0  32,64
     vfscache435662 32388K  80389K102400K 13063992    0     0  64,128,256,512,512K
   BIO buffer     8     8K   2697K102400K   395143    0     0  512,1K,2K
          pcb   153     7K     14K102400K    80532    0     0  16,32,64,2K
       soname    22     2K      2K102400K  2000830    0     0  16,32,128
         ptys     4     2K      2K102400K        4    0     0  512
         ttys   566    75K     75K102400K     2477    0     0  128,512
          shm     1    12K     12K102400K        1    0     0  16K
          sem     3     6K      6K102400K        3    0     0  1K,4K
          msg     4    25K     25K102400K        4    0     0  512,4K,16K
          iov     0     0K      1K102400K      182    0     0  64,128,256,512
     ioctlops     0     0K      1K102400K       22    0     0  512,1K
    taskqueue     2     1K      1K102400K        2    0     0  128
         sbuf     0     0K      5K102400K        2    0     0  32,4K
         rman    63     4K      4K102400K      410    0     0  16,64
      mbufmgr   495   112K    116K102400K  7952262    0     0  16,32,64,128,32K,128K
      MD disk     1     1K      1K102400K        1    0     0  1K
         kobj   123   492K    492K102400K      123    0     0  4K
 eventhandler    29     2K      2K102400K       29    0     0  32,128
          bus   697    50K     50K102400K     3770    0     0  16,32,64,128,256,512,1K,2K,4K
         SWAP     2  1097K   1097K102400K        2    0     0  32,512K
  timecounter   100    13K     13K102400K      100    0     0  128
    sysctloid    46     2K      2K102400K       46    0     0  16,32,64
       sysctl     0     0K      1K102400K    93864    0     0  16,32,64
      uidinfo     9     2K      2K102400K       39    0     0  32,1K
         cred   101    13K     14K102400K    17629    0     0  128
      subproc   167    15K     18K102400K    21046    0     0  64,256
         proc     2     8K      8K102400K        2    0     0  4K
      session    46     6K      7K102400K      225    0     0  128
         pgrp    51     7K      7K102400K      381    0     0  128
       module   169    11K     11K102400K      169    0     0  64,128
      acpisem    16     1K      1K102400K       16    0     0  64
       ip6ndp     8     2K      2K102400K       12    0     0  16,64,128,512
         temp     5    61K     98K102400K   289464    0     0  16,32,64,128,256,512,1K,2K,4K,8K,32K,64K
       devbuf   510   413K    413K102400K     1393    0     0  16,32,64,128,256,512,1K,2K,4K,16K,32K
        lockf    23     2K      2K102400K    20336    0     0  32,64
       linker    34     2K      2K102400K       48    0     0  16,32,256
      ithread    45     5K      5K102400K       45    0     0  64,128
       atexit     2     1K      1K102400K        2    0     0  16
       zombie     0     0K      2K102400K    20697    0     0  128
    proc-args    98     6K      9K102400K    21587    0     0  16,32,64,128,256
       kqueue     5     5K      6K102400K       35    0     0  256,1K
        sigio     1     1K      1K102400K        2    0     0  32
         file   376    24K     28K102400K  3582335    0     0  64
    file desc   146    37K     47K102400K    21496    0     0  256,512
        dev_t  1477   370K    370K102400K     1477    0     0  256
       acpica  2169   112K    112K102400K    10086    0     0  16,32,64,128,256,512,1K
      acpidev   100     2K      2K102400K      100    0     0  16
  ISOFS mount     1   512K    512K102400K        1    0     0  512K
       isadev    28     2K      2K102400K       28    0     0  64
  pfs_vncache     0     0K      1K102400K        6    0     0  32
   pfs_fileno     1    20K     20K102400K        1    0     0  32K
    pfs_nodes    20     3K      3K102400K       20    0     0  128
        DEVFS   149    25K     25K102400K      149    0     0  16,128,8K

Memory Totals:  In Use    Free    Requests
                40350K  80500K    32039231

ITEM            SIZE     LIMIT    USED    FREE  REQUESTS

SWAPMETA:        160,   509724,     70,    749,      784
ripcb:           192,     8232,      3,     39,       13
syncache:        160,    15359,      0,     51,    96702
tcpcb:           544,     8232,    383,   1273,   175720
udpcb:           192,     8232,     72,     34,     1905
unpcb:           160,        0,     44,     31,      495
socket:          224,     8232,    503,   1289,   178141
KNOTE:            64,        0,      0,    128,       22
DIRHASH:        1024,        0,    491,   1493,   133876
PIPE:            192,        0,     39,    131,     6172
NFSNODE:         320,        0,   1258,   1490,    13343
NFSMOUNT:        256,        0,      7,     25,       49
FFSNODE:         256,        0, 412703,   1457, 12363841
NAMEI:          1024,        0,      0,     32, 35173731
VNODEPOLL:        64,        0,      0,    320,        1
VNODE:           224,        0, 414318,     96,   414318
VMSPACE:         224,        0,    107,     55,    20788
PROC:            768,        0,    144,     64,    20841
DP fakepg:        64,        0,      0,      0,        0
PV ENTRY:         28,  2396042, 163256, 623165, 11586363
MAP ENTRY:        48,        0,   3108,    760,  6306679
KMAP ENTRY:       48,   193110,    477,    163,    55810
MAP:             108,        0,      8,     39,        8
VM OBJECT:        96,        0, 186835, 223803,  1774809



[-- Attachment #5 --]

-- 
Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> <tanimura@FreeBSD.org>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203031242.g23CfIfu059069>