Date: Sat, 16 Mar 2002 11:58:40 -0600 (CST) From: mark tinguely <tinguely@web.cs.ndsu.nodak.edu> To: rc27@cse.Buffalo.EDU, tinguely@web.cs.ndsu.nodak.edu Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Memory management bug in FreeBSD 4.5 RELEASE Message-ID: <200203161758.g2GHwek39309@web.cs.ndsu.nodak.edu> In-Reply-To: <Pine.SOL.4.30.0203161241470.11361-100000@tarantula.cse.Buffalo.EDU>
next in thread | previous in thread | raw e-mail | index | archive | help
> But why does this not happen after i = 32 ? I hardly see any increase in > memory usage after that. I think you are backstoring pages that hold the allocated memory bucket pointers, not the data itself. in the i < 32 you run out of these pages of pointers to buckets before you hit your data size VM limit. After 32 bits, you are allocating bigger, using fewer buckets, and therefore few pointers to the buckets. you hit your data size VM limit before you exceed the back store of these pointers. you do not check the return code from you malloc, so after you exceed your data size VM limit, your program is just spinning, no more pages of pointers will be squeeze out to swap backstore. dirty a byte in your malloc block to push out all of the allocated data. --mark tinguely. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203161758.g2GHwek39309>