Re: Buffer sizes.

From: George (greerga@DRAGON.HAM.MUOHIO.EDU)
Date: 08/20/97


On Wed, 20 Aug 1997, Jeremy Elson wrote:

>Maybe I'm misunderstanding how the patch works... for some reason, I
>thought it always rounded the request up to the next highest power of
>2. [...]

No, I don't round.  The buffer requests are filled by whatever is created
in init_buffers().  So if you put a 335 byte buffer in there, any 256 byte
requests will use it if there are no other suitable buffers free, and of
course, any 335 byte requests will use that also if it is free. If it can't
find a valid sized, empty buffer in that list then it creates a new buffer
to the exact size they specified and places it sorted in the list.

> [...]  I figured the reason a 12288 byte request was filled by 32K
>(instead of 16K) was because a 32K buffer already existed in the
>buffer pool and was the first one that aquire_buffer() found that was
>>= 12288.

So you are correct in your second statement, the 32k buffer already existed
and was the first one it found unused.  If you want the 12288 buffer
satisfied by something less than 32k, you can add a smaller buffer, such as
16k, to the persistant list.

Really, we don't need that many buffers on the persistant list...but I have
been more worried about it running than figuring out what is used in normal
use.  A five minute timeout should be able to get by without any persistant
buffers really, or at least very few...it should balance itself.

--
greerga@muohio.edu me@null.net | Genius may have its limitations, but stupidity
http://www.muohio.edu/~greerga | is not thus handicapped. -- Elbert Hubbard


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/08/00 PST