tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kmem-pool-uvm



hi,

> Hi,
> 
> i uploaded a new version of the kmem-pool-vmem-uvm patch:
> ftp://ftp.netbsd.org/pub/NetBSD/misc/para/kmem-pool-vmem-uvm.patch    

thanks for working on this.

can you provide a patch with diff -up?

have you done benchmarks?  eg. src/regress/sys/kern/allocfree
i'm a little concerned about IPL_VM mutex overhead for kmem_alloc.

YAMAMOTO Takashi

> 
> vmem(9) is now in charge for controlling the entire kernel heap,
> vmem_create is split into vmem_create and vmem_xcreate with different
> import function signatures, this allows the use of vmem_alloc as an
> import function.
> vmem has two private arenas for it's internal purposes.
> 
> special kernel map entry support is removed, it's not required anymore
> as well as map entry reservation not required any more as well.
> 
> pool(9) kmem(9) are now both backed by a quantum cached arena.
> malloc(9) is replaced by small wrapper around kmem(9)
> 
> This is what my kernel_map looks like after having made a release build:
> (8gb amd64)
> 
> $ pmap -R 0
> 
>  FFFF800000000000 239364K read/write/exec     [ anon ]
>  FFFF80000E9C1000 4067176K read/write/exec     [ anon ]
>  FFFF800106D9B000  16384K read/write/exec     [ pager_map ]
>  FFFF800107D9B000     96K read/write/exec     [ anon ]
>  FFFF800107DB3000   1200K read/write/exec     [ phys_map ]
>  FFFF800107EDF000   8196K read/write/exec     [ anon ]
>  FFFF8001086E0000   8192K read/write/exec     [ ubc_pager ]
>  FFFF800108EE0000     68K read/write/exec     [ anon ]
>  FFFF800108EF1000   2816K read/write/exec     [ uvm_aobj ]
>   total          4343492K
> 
> The "big" entry in the second line thats the heap controlled by vmem.
> 
> no failed allocations any more due to allocation while map locked etc
> 
> $ vmstat -mv
> 
> vmstat: Kmem statistics are not being gathered by the kernel.
> Memory resource pool statistics
> Name        Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg
> Maxpg Idle
> aio_jobs_pool 128       0    0        0     0     0     0     0     0
> inf    0
> aio_lio_pool  40        0    0        0     0     0     0     0     0
> inf    0
> amappl        80     2636    0        0    53     0    53    53     0
> inf    0
> anonpl        32   274412    0        0  2178     0  2178  2178     0
> inf    0
> ataspl        96   692473    0   692473     1     0     1     1     0
> inf    1
> biopl        280     4023    0        0   288     0   288   288     0
> inf    0
> brtpl         56        0    0        0     0     0     0     0     0
> inf    0
> buf16k      16384   28091    0     4746  5990   153  5837  5837     1
>   1    0
> buf1k       1024        0    0        0     1     0     1     1     1
>   1    1
> buf2k       2048   179497    0     5924  5434     9  5425  5425     1
>   1    0
> buf32k      32768       0    0        0     1     0     1     1     1
>   1    1
> buf4k       4096     2745    0     1274   102     8    94    94     1
>   1    0
> buf512b      512        0    0        0     1     0     1     1     1
>   1    1
> buf64k      65536       0    0        0     1     0     1     1     1
>   1    1
> buf8k       8192     1504    0      726   129    29   100   100     1
>   1    0
> bufpl        280   199167    0        0 14227     0 14227 14227     0
> inf    0
> cryptkop     352        0    0        0     0     0     0     0     0
> inf    0
> cryptodesc    72        0    0        0     0     0     0     0     0
> inf    0
> cryptop      272        0    0        0     0     0     0     0     0
> inf    0
> csepl        208        0    0        0    17     0    17    17    17
> inf   17
> cwdi          64      173    0        0     3     0     3     3     0
> inf    0
> execargs    262144 710463    0   710463     4     0     4     4     0
>  16    4
> extent        40        0    0        0     0     0     0     0     0
> inf    0
> fcrpl        168        0    0        0     3     0     3     3     3
> inf    3
> fdfile        64     2549    0        0    41     0    41    41     0
> inf    0
> ffsdino1     128   419052    0        0 13518     0 13518 13518     0
> inf    0
> ffsdino2     256        0    0        0     0     0     0     0     0
> inf    0
> ffsino       256   419056    0        0 26191     0 26191 26191     0
> inf    0
> file         128      281    0        0    10     0    10    10     0
> inf    0
> filedesc     832      173    0        0    44     0    44    44     0
> inf    0
> fstrans       32      154    0        0     2     0     2     2     0
> inf    0
> igmppl        32        0    0        0     0     0     0     0     0
> inf    0
> in6pcbpl     232      155    0      144     1     0     1     1     0
> inf    0
> inmltpl       48        3    0        0     1     0     1     1     0
> inf    0
> inpcbpl      192      172    0      162     1     0     1     1     0
> inf    0
> ipfrenpl      64        0    0        0     0     0     0     0     0
> inf    0
> kcpuset       64        1    0        0     1     0     1     1     0
> inf    0
> kcredpl      192       70    0        0     4     0     4     4     0
> inf    0
> kmem-1024   1024     2370    0        0   593     0   593   593     0
> inf    0
> kmem-112     112      894    0        0    25     0    25    25     0
> inf    0
> kmem-128     128     1334    0        0    42     0    42    42     0
> inf    0
> kmem-16       16      988    0        0     4     0     4     4     0
> inf    0
> kmem-160     160      214    0        0     9     0     9     9     0
> inf    0
> kmem-192     192      191    0        0    10     0    10    10     0
> inf    0
> kmem-2048   2048     1225    0        0   613     0   613   613     0
> inf    0
> kmem-224     224       85    0        0     5     0     5     5     0
> inf    0
> kmem-24       24      232    0        0     2     0     2     2     0
> inf    0
> kmem-256     256      123    0        0     8     0     8     8     0
> inf    0
> kmem-32       32      486    0        0     4     0     4     4     0
> inf    0
> kmem-320     320      285    0        0    24     0    24    24     0
> inf    0
> kmem-384     384      328    0        0    33     0    33    33     0
> inf    0
> kmem-40       40     4810    0        0    48     0    48    48     0
> inf    0
> kmem-4096   4096       55    0        0    55     0    55    55     0
> inf    0
> kmem-448     448      127    0        0    15     0    15    15     0
> inf    0
> kmem-48       48     1021    0        0    13     0    13    13     0
> inf    0
> kmem-512     512       97    0        0    13     0    13    13     0
> inf    0
> kmem-56       56      306    0        0     5     0     5     5     0
> inf    0
> kmem-64       64     4264    0        0    67     0    67    67     0
> inf    0
> kmem-768     768      245    0        0    49     0    49    49     0
> inf    0
> kmem-8         8      790    0        0     2     0     2     2     0
> inf    0
> kmem-80       80     2021    0        0    40     0    40    40     0
> inf    0
> kmem-96       96      200    0        0     5     0     5     5     0
> inf    0
> ksiginfo      72       83    0        0     2     0     2     2     0
> inf    0
> ktrace       120        0    0        0     0     0     0     0     0
> inf    0
> kva-12288   12288     223    0        0    11     0    11    11     0
> inf    0
> kva-16384   16384      17    0        0     2     0     2     2     0
> inf    0
> kva-20480   20480      13    0        0     2     0     2     2     0
> inf    0
> kva-24576   24576       1    0        0     1     0     1     1     0
> inf    0
> kva-28672   28672       1    0        0     1     0     1     1     0
> inf    0
> kva-32768   32768       1    0        0     1     0     1     1     0
> inf    0
> kva-36864   36864       2    0        0     1     0     1     1     0
> inf    0
> kva-4096    4096   118955    0        0  1859     0  1859  1859     0
> inf    0
> kva-40960   40960       0    0        0     0     0     0     0     0
> inf    0
> kva-49152   49152       1    0        0     1     0     1     1     0
> inf    0
> kva-65536   65536   11462    0        0  2866     0  2866  2866     0
> inf    0
> kva-8192    8192      112    0        0     4     0     4     4     0
> inf    0
> lockf        112       12    0        0     1     0     1     1     0
> inf    0
> lwppl       1056      217    0        0    73     0    73    73     0
> inf    0
> mbpl         512      153    0        0    22     0    22    22     2
> inf    2
> mclpl       2048      149    0        0    79     0    79    79     4
> 65536    4
> mqmsgpl     1024        0    0        0     0     0     0     0     0
> inf    0
> mutex         64   422019    0        0  6699     0  6699  6699     0
> inf    0
> ncache       192   419038    0        0 19955     0 19955 19955     0
> inf    0
> pcache       896       59    0        0    15     0    15    15     0
> inf    0
> pcachecpu     64      237    0        0     4     0     4     4     0
> inf    0
> pcglarge    1024     4852    0        0  1213     0  1213  1213     0
> inf    0
> pcgnormal    256     7359    0        0   460     0   460   460     0
> inf    0
> pdict128     184        0    0        0     0     0     0     0     0
> inf    0
> pdict16       72       24    0        8     1     0     1     1     0
> inf    0
> pdict32       88       10    0        2     1     0     1     1     0
> inf    0
> pdppl       4096      168    0        0   168     0   168   168     0
> inf    0
> pewpl         24        0    0        0     1     0     1     1     1
>   1    1
> phpool-0      56    41440    0      199   573     0   573   573     0
> inf    0
> phpool-1024  176        0    0        0     0     0     0     0     0
> inf    0
> phpool-128    64       70    0        0     2     0     2     2     0
> inf    0
> phpool-2048  304        0    0        0     0     0     0     0     0
> inf    0
> phpool-256    80        6    0        0     1     0     1     1     0
> inf    0
> phpool-4096  560        0    0        0     0     0     0     0     0
> inf    0
> phpool-512   112        2    0        0     1     0     1     1     0
> inf    0
> phpool-64     56     4970    0        0    70     0    70    70     0
> inf    0
> piperd       320      112    0        0    10     0    10    10     0
> inf    0
> pipewr       320      119    0        0    10     0    10    10     0
> inf    0
> plimitpl     216      123    0        0     7     0     7     7     0
> inf    0
> pmappl       392      168    0        0    17     0    17    17     0
> inf    0
> pnbufpl     1024       72    0        0    18     0    18    18     0
> inf    0
> procpl       656      161    0        0    27     0    27    27     0
> inf    0
> proparay      48        0    0        0     0     0     0     0     0
> inf    0
> propdata      40        0    0        0     0     0     0     0     0
> inf    0
> propdict      48      196    0       24     3     0     3     3     0
> inf    0
> propnmbr      56       26    0        7     1     0     1     1     0
> inf    0
> propstng      40      269    0       11     3     0     3     3     0
> inf    0
> pstatspl     448      161    0        0    18     0    18    18     0
> inf    0
> ptimerpl     264       11    0        5     1     0     1     1     0
> inf    0
> ptimerspl    280       11    0        5     1     0     1     1     0
> inf    0
> pvpl          40    38951    0        0   386     0   386   386     0
> inf    0
> ractx         32    68471    0        0   544     0   544   544     0
> inf    0
> rndsample    536    10808    0    10804     1     0     1     1     0
> inf    0
> rtentpl      272       27    0        0     2     0     2     2     0
> inf    0
> rttmrpl       64        0    0        0     0     0     0     0     0
> inf    0
> rwlock        64        0    0        0     0     0     0     0     0
> inf    0
> sackholepl    32        0    0        0     0     0     0     0     0
> inf    0
> sigacts     3088      173    0        0   173     0   173   173     0
> inf    0
> socket       584       41    0        0     6     0     6     6     0
> inf    0
> swp vnd      288        0    0        0     0     0     0     0     0
> inf    0
> swp vnx       32        0    0        0     0     0     0     0     0
> inf    0
> synpl        280        1    0        1     1     0     1     1     0
> inf    1
> tcpcbpl      792       17    0       12     2     0     2     2     0
> inf    1
> tcpipqepl     80        0    0        0     0     0     0     0     0
> inf    0
> tstilepl      96      217    0        0     6     0     6     6     0
> inf    0
> uaoeltpl      96        0    0        0     0     0     0     0     0
> inf    0
> uarea       12288     217    0        0   217     0   217   217     0
> inf    0
> ufsdir       264        4    0        0     1     0     1     1     0
> inf    0
> vmmpepl      136     5583    0        0   193     0   193   193     0
> inf    0
> vmsppl       368      168    0        0    16     0    16    16     0
> inf    0
> vnodepl      296   419079    0        0 32237     0 32237 32237     0
> inf    0
> wapblinopl    32   752908    0   752888     1     0     1     1     0
> inf    0
> 
> In use 1206022K, total allocated 1224292K; utilization 98.5%
> 
> 
> kind regards,
> Lars
> 
> 
> - -- 
> - ------------------------------------
> 
> Mystische Erkldrungen:
> Die mystischen Erkldrungen gelten f|r tief;
> die Wahrheit ist, dass sie noch nicht einmal oberfldchlich sind.
> 
>    -- Friedrich Nietzsche
>    [ Die Frvhliche Wissenschaft Buch 3, 126 ]
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.18 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAk5IAxMACgkQcxuYqjT7GRZ9UwCeMazMDvYTns5LAq7K6TtiV5Ql
> G6AAoMBtGvBfk4aniS8qrRt8EtYOjs1J
> =moI/
> -----END PGP SIGNATURE-----
> 


Home | Main Index | Thread Index | Old Index