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