Submitted by: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp> Reviewed by: Koichi Suzuki <metal@gc5.so-net.ne.jp>
205 lines
6.4 KiB
Groff
205 lines
6.4 KiB
Groff
.\"-
|
||
.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav
|
||
.\" All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" %FreeBSD: src/share/man/man9/zone.9,v 1.26 2004/01/25 11:39:41 des Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.Dd July 21, 2003
|
||
.Dt ZONE 9
|
||
.Os
|
||
.Sh ̾¾Î
|
||
.Nm uma_zcreate ,
|
||
.Nm uma_zalloc ,
|
||
.Nm uma_zfree ,
|
||
.Nm uma_zdestroy ,
|
||
.Nm uma_zone_set_max
|
||
.Nd ¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿
|
||
.Sh ½ñ¼°
|
||
.In sys/param.h
|
||
.In sys/queue.h
|
||
.In vm/uma.h
|
||
.Ft uma_zone_t
|
||
.Fo uma_zcreate
|
||
.Fa "char *name" "int size"
|
||
.Fa "uma_ctor ctor" "uma_dtor dtor" "uma_init uminit" "uma_fini fini"
|
||
.Fa "int align" "u_int16_t flags"
|
||
.Fc
|
||
.Ft "void *"
|
||
.Fn uma_zalloc "uma_zone_t zone" "int flags"
|
||
.Ft void
|
||
.Fn uma_zfree "uma_zone_t zone" "void *item"
|
||
.Ft void
|
||
.Fn uma_zdestroy "uma_zone_t zone"
|
||
.Ft void
|
||
.Fn uma_zone_set_max "uma_zone_t zone" "int nitems"
|
||
.Sh ²òÀâ
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤ÏưŪ¤ËÂ礤µ¤¬·è¤á¤é¤ì¤ëÎà»÷¤·¤¿Â礤µ¤Î¹àÌܤν¸¹ç¤ò
|
||
´ÉÍý¤¹¤ë¤¿¤á¤Î¸úΨŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¼Â¹Ô»þ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¾¡¼¥ó¤Ï¤â¤Á¤í¤ó¡¢
|
||
ͽ¤á³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥¾¡¼¥ó¤ËÂФ·¤Æ¤â»ÈÍѤ¹¤ë¤³¤È¤¬½ÐÍè¡¢¤Þ¤¿¤½¤Î¤¿¤á¡¢
|
||
¾¤Î¥á¥â¥ê´ÉÍý¥ë¡¼¥Á¥ó¤è¤ê¤â¥Ö¡¼¥È¥×¥í¥»¥¹¤Î¤è¤êÁᤤÃʳ¬¤ÇÍøÍѲÄǽ¤Ç¤¹¡£
|
||
.Pp
|
||
¥¾¡¼¥ó¤Ï¿Ä¥À¤Î¤¢¤ëƱ°ì¤ÎÂ礤µ¤Î¹àÌܤν¸¹ç¤Ç¤¹¡£
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¤É¤Î¹àÌܤ¬»ÈÍÑÃæ¤«¤½¤¦¤Ç¤Ê¤¤¤Î¤«¤ò¸«¼º¤ï¤Ê¤¤¤è¤¦¤Ë¤·¡¢
|
||
¥¾¡¼¥ó¤«¤é
|
||
¹àÌܤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î´Ø¿ô¤ª¤è¤Ó²òÊü¤·¤ÆÌ᤹ (¸å¤Ç¤Î»ÈÍѤΤ¿¤á¤Ë¹àÌܤò
|
||
ÍøÍѲÄǽ¤Ë¤¹¤ë) ¤¿¤á¤Î´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£
|
||
.Pp
|
||
¹½Â¤ÂΤò¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ç´ÉÍý¤·¡¢
|
||
³ä¤êÅö¤Æ¤Î´Ö¤ËËä¤á¹þ¤ßºÑ¤ß¤Î¥Õ¥£¡¼¥ë¥É¤ò»Ä¤¹¤³¤È¤Ë¤è¤ê
|
||
·¿¤¬¸ÇÄê¤È¤Ê¤ë¥¾¡¼¥ó¤ÎÆÃÀ¤ò»ÈÍѤ·¤¿¤¤¾ì¹ç¡¢
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ëÀèÆ¬ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤ò
|
||
¤³¤Î¹½Â¤ÂΤ¬Í½Ì󤷤Ƥª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
|
||
.Bd -literal -offset indent
|
||
struct my_item {
|
||
struct my_item *z_rsvd1;
|
||
struct my_item *z_rsvd2;
|
||
/* ¹½Â¤ÂΤλĤê¤ÎÉôʬ */
|
||
};
|
||
.Ed
|
||
.Pp
|
||
¤½¤¦¤·¤Ê¤¤¾ì¹ç¡¢³Æ¡¹¤Î³äÅö¤Æ¤Î¸å¤Ç¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬²õ¤ì¤¿¤È¤ß¤Ê¤¹¤Ù¤¤Ç¤¹¡£
|
||
¹àÌܤκǽé¤Î³äÅö¤Æ¤Î¸å¤Ç¤Ï¡¢0 ¤Ë¥¯¥ê¥¢¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
¤·¤«¤·¤½¤ì¤Ë³¤¯³äÅö¤Æ¤Ç¤Ï¡¢
|
||
ºÇ¶á²òÊü¤µ¤ì¤¿¤â¤Î¤¬ÆâÍÆ¤È¤·¤Æ»Ä¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤¬¡¢
|
||
Á°½Ò¤Î¥Õ¥£¡¼¥ë¥É¤ÏÎã³°¤Ç¤¹¡£
|
||
.Pp
|
||
.Fn uma_zcreate
|
||
´Ø¿ô¤Ï¡¢¤³¤ì¤«¤é¹àÌܤ¬³äÅö¤Æ¤é¤ì¤ë¤³¤È¤¬²Äǽ¤Ê¿·¤·¤¤¥¾¡¼¥ó¤òºîÀ®¤·¤Þ¤¹¡£
|
||
.Fa name
|
||
°ú¿ô¤Ï¥Ç¥Ð¥Ã¥°¤ª¤è¤Ó¥¹¥Æ¡¼¥¿¥¹¤Î¤¿¤á¤Î¥Æ¥¥¹¥È¤Î¥¾¡¼¥ó̾¤Ç¤¹¡£
|
||
¤³¤Î¥á¥â¥ê¤Ï¡¢¥¾¡¼¥ó¤Î³äÅö¤Æ¤¬²òÊü¤µ¤ì¤ë¤Þ¤Ç¤Ï¡¢²òÊü¤µ¤ì¤ë¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.Pp
|
||
°ú¿ô
|
||
.Fa ctor
|
||
¤È
|
||
.Fa dtor
|
||
¤Ï¡¢¤½¤ì¤¾¤ì
|
||
.Fn uma_zalloc
|
||
¤È
|
||
.Fn uma_zfree
|
||
¤Î¸Æ¤Ó½Ð¤·»þ¤Ë uma ¥µ¥Ö¥·¥¹¥Æ¥à¤«¤é¸Æ¤Ð¤ì¤ë¡¢¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤Ç¤¹¡£
|
||
¤³¤ì¤é¤ÎÌÜŪ¤Ï¡¢»ñ¸»¤Î³ä¤êÅö¤Æ»þ¤È²òÊü»þ¤ËɬÍפȤʤ롢
|
||
½é´ü²½¤ª¤è¤ÓÇ˲õ¤Î¤¿¤á¤Î¥Õ¥Ã¥¯¤òÄ󶡤¹¤ë¤³¤È¤Ç¤¹¡£
|
||
.Fa ctor
|
||
¤ª¤è¤Ó
|
||
.Fa dtor
|
||
¤Î¥³¡¼¥ë¥Ð¥Ã¥¯¤ÎÎɤ¤»È¤¤Êý¤È¤·¤Æ¤Ï¡¢
|
||
³ä¤êÅö¤Æ¤é¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥°¥í¡¼¥Ð¥ë¥«¥¦¥ó¥È¤ÎÄ´À°¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
|
||
.Pp
|
||
°ú¿ô
|
||
.Fa uminit
|
||
¤È
|
||
.Fa fini
|
||
¤Ï¡¢¥¾¡¼¥ó¤«¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È³ä¤êÅö¤Æ¤ÎºÇŬ²½¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
||
¤³¤ì¤é¤Ï¡¢Í×µá¼Â¸½¤Þ¤¿¤Ï¥á¥â¥ê°µÇ÷¤ÎÍýͳ¤Ë¤è¤ê¡¢
|
||
uma ¥µ¥Ö¥·¥¹¥Æ¥à¤¬Ê£¿ô¤Î¹àÌܤò³ä¤êÅö¤Æ¤Þ¤¿¤Ï²òÊü¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤Ë¡¢
|
||
¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
|
||
.Fa uminit
|
||
¤ª¤è¤Ó
|
||
.Fa fini
|
||
¤Î¥³¡¼¥ë¥Ð¥Ã¥¯¤ÎÎɤ¤»È¤¤Êý¤È¤·¤Æ¤Ï¡¢
|
||
¥ª¥Ö¥¸¥§¥¯¥È¤Ë´Þ¤Þ¤ì¤ë¥ß¥å¡¼¥Æ¥Ã¥¯¥¹¤Î½é´ü²½¤ÈÇ˲õ¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
|
||
¤³¤ì¤Ë¤è¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¤¬ uma ¥µ¥Ö¥·¥¹¥Æ¥à¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤éÊÖ¤µ¤ì¤¿¤È¤¤Ë¡¢
|
||
´û¤Ë½é´ü²½ºÑ¤ß¤Î¥ß¥å¡¼¥Æ¥Ã¥¯¥¹¤òºÆ»ÈÍѲÄǽ¤È¤Ê¤ê¤Þ¤¹¡£
|
||
¤³¤ì¤é¤Ï¡¢³Æ
|
||
.Fn uma_zalloc
|
||
¤ä
|
||
.Fn uma_zfree
|
||
¤Î¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¸Æ¤Ó½Ð¤µ¤ì¤º¡¢
|
||
Ê£¿ô¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¥Ð¥Ã¥ÁŪ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
¹àÌܤϤ½¤Î¥¾¡¼¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òȼ¤Ê¤¦
|
||
.Fn uma_zalloc
|
||
¤Î¸Æ½Ð¤·¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¡¢
|
||
.Fa flags
|
||
°ú¿ô¤Ë
|
||
.Xr malloc 9
|
||
¤È¤·¤ÆÊ¸½ñ²½¤µ¤ì¤¿ÁªÂò¤µ¤ì¤¿¥Õ¥é¥°¤òÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
¤½¤Î¹àÌܤϤ½¤Î¥¾¡¼¥ó¤Ë²òÊü¤·Ìᤵ¤ì¤Þ¤¹¡£
|
||
À®¸ù¤Î¾ì¹ç¤Ë¤Ï¹àÌܤؤΥݥ¤¥ó¥¿¤òÊÖ¤·¤Þ¤¹¡£
|
||
¥¾¡¼¥óÃæ¤ÎÁ´¹àÌܤ¬»ÈÍÑÃæ¤Ç³î¤Ä¥¢¥í¥±¡¼¥¿¤¬¥¾¡¼¥ó¤ò³ÈÄ¥¤Ç¤¤Ê¤¤µ©¤Ê¾ì¹ç¤«¡¢
|
||
.Dv M_NOWAIT
|
||
¤¬ÌÀ¼¨¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
|
||
.Dv NULL
|
||
¤òÊÖ¤·¤Þ¤¹¡£
|
||
.Pp
|
||
¹àÌܤϤ½¤Î¥¾¡¼¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ª¤è¤Ó¤½¤Î¹àÌܤؤΥݥ¤¥ó¥¿¤òȼ¤Ê¤Ã¤¿
|
||
.Fn uma_zfree
|
||
¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¡¢³äÅö¤Æ¤é¤ì¤Æ¤¤¤¿¥¾¡¼¥ó¤Ë²òÊü¤·Ìᤵ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
¶õ¤Ç¤¢¤ëºîÀ®¤µ¤ì¤¿¥¾¡¼¥ó¤Ï¡¢
|
||
.Fn uma_zdestroy
|
||
¤ò»ÈÍѤ·¤Æ¡¢¤½¤Î¥¾¡¼¥ó¤Î¤¿¤á¤Ë³äÅö¤Æ¤é¤ì¤¿Á´¤Æ¤Î¥á¥â¥ê¤ò²òÊü¤·¤Æ¡¢
|
||
Ç˲õ¤µ¤ì¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
|
||
¤½¤Î¥¾¡¼¥ó¤«¤é
|
||
.Fn uma_zalloc
|
||
¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¤¿¹àÌܤϡ¢¤½¤ÎÁ°¤Ë
|
||
.Fn uma_zfree
|
||
¤Ë¤è¤Ã¤Æ²òÊü¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
|
||
.Pp
|
||
.Fn uma_zone_set_max
|
||
¤ÎÌÜŪ¤Ï¡¢
|
||
.Fa zone
|
||
°ú¿ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¾¡¼¥ó¤ËÂФ·¤ÆÀìÍѤˤǤ¤ë¥á¥â¥ê¤ÎºÇÂçÎ̤ò
|
||
À©¸Â¤¹¤ë¤³¤È¤Ç¤¹¡£
|
||
.Fa nitems
|
||
°ú¿ô¤Ë¤Ï¤½¤Î¥¾¡¼¥óÆâ¤Î¹àÌܤξå¸Â¤òÍ¿¤¨¤Þ¤¹¡£
|
||
¤³¤ÎÀ©¸Â¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¹àÌÜ¡¢³«Êü¤µ¤ì¤¿¹àÌÜ¡¢¤ª¤è¤Ó CPU Ëè¤Î
|
||
¥¥ã¥Ã¥·¥åÆâ¤Ë¤¢¤ë³«Êü¤µ¤ì¤¿¹àÌܤò´Þ¤à¡¢¤½¤Î¥¾¡¼¥ó¤ÎÃæ¤Î¹àÌܤΥȡ¼¥¿¥ë¿ô¤Ç¤¹¡£
|
||
Ê£¿ô¤Î CPU ¤ò»ý¤Ä¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢¥á¥â¥ê¤ÎÉÔ¤¬¤Ê¤¤»þ¤Ë¤Ç¤µ¤¨¡¢
|
||
»ØÄꤵ¤ì¤¿¿ô¤Î¹àÌܤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ç¤¢¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
¤Ê¤¼¤Ê¤é¤Ð¡¢À©¸Â¤Ë°ú¤Ã¤«¤«¤ë»þÅÀ¤Ç¡¢»Ä¤ê¤ÎÁ´¤Æ¤Î³«Êü¤µ¤ì¤Æ¤¤¤ë¹àÌܤ¬¡¢
|
||
¾¤Î CPU ¤Î¥¥ã¥Ã¥·¥å¤ÎÃæ¤Ë¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¹¡£
|
||
.Sh Ìá¤êÃÍ
|
||
.Fn uma_zalloc
|
||
´Ø¿ô¤Ï¹àÌܤؤΥݥ¤¥ó¥¿¤ò¡¢¤Þ¤¿¤Ï¥¾¡¼¥ó¤Î̤»ÈÍѹàÌܤ¬ÉÔ¤·¤Æ¥¢¥í¥±¡¼¥¿¤¬
|
||
¥¾¡¼¥ó¤ò³ÈÄ¥¤Ç¤¤Ê¤¤¾ì¹ç¤Ë
|
||
.Dv NULL
|
||
¤ò¡¢ÊÖ¤·¤Þ¤¹¡£
|
||
.Sh ´ØÏ¢¹àÌÜ
|
||
.Xr malloc 9
|
||
.Sh Îò»Ë
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï
|
||
.Fx 3.0
|
||
¤Ç¤Ï¤¸¤á¤ÆÅо줷¤Þ¤·¤¿¡£
|
||
¥¹¥é¥Ö¥¢¥í¥±¡¼¥¿¤È¤·¤Æ¤Îµ¡Ç½¤Î¤¿¤á¡¢
|
||
.Fx 5.0
|
||
¤Çº¬ËÜŪ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
|
||
.Sh ºî¼Ô
|
||
.An -nosplit
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï
|
||
.An John S. Dyson
|
||
¤¬½ñ¤¤Þ¤·¤¿¡£
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¡¢¥¹¥é¥Ö¥¢¥í¥±¡¼¥¿¤È¤·¤Æ¤Îµ¡Ç½¤Î¤¿¤á¡¢
|
||
.An Jeff Roberson Aq jeff@FreeBSD.org
|
||
¤¬ÂçÉôʬ¤ò½ñ¤Ä¾¤·¤Þ¤·¤¿¡£
|
||
.Pp
|
||
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
|
||
.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org
|
||
¤¬½ñ¤¤Þ¤·¤¿¡£
|
||
UMA ¤Î¤¿¤á¤Ë
|
||
.An Jeroen Ruigrok van der Werven Aq asmodai@FreeBSD.org
|
||
¤¬Êѹ¹¤·¤Þ¤·¤¿¡£
|