On Thu, 03 Mar 2011 14:38:52 -0500, Brunner, Brian T. wrote:
[...]
Holy RAMbo, batman! How many GB of RAM do you intend to allocate? Once you allocate 2GB like you did, you MUST be running a bigmem or x64 kernel to allocate another 2GB.
You won't see 'new'd memory as "taken" in top(8) because malloc() is a bug. Bits are set in a page table, but no memory is actually written to, and nothing really changes, until the program attempts to write. What you did was fall off the end of a bit string keeping track of malloc()'d pages, that's all.
(ps mark, the ++jj or jj++ takes place after the first loops' action, not before .:. ++jj and jj++ have identical effect).
Insert spiffy .sig here
[...]
Yes, I do expect to do a bit of arithmetic. I will need several blocks of about 0.5G, and I am checking the limits. Is it true, then, that I won't really know if I succeeded with the allocation until I try to write the memory? What will happen then? Is there a way to check without actually writing?
Mike.