...
One more time - "total accessible memory space of 3.2G" does not have any relation to VAL.
Even you have 512Mb of RAM installed, with VAL=3072 you will have 1GB system arena.
For ex. most of kernel's objects are ALWAYS (in spite of installed RAM) situated at the very top of VIRT mem: 0xFFE7700 - FFFC0000h. And just a few of them mapped into specific phys mem (lower 1Mb).
...
Yes, and this very statement is the crux of it. The point I am making, and perhaps what Dave was trying to say as well, is that it is the VAL setting itself that controls how much of that accessbile memory space is actually available for non-system use.
Case in point, speaking for myself only although I suspect the greater part of our OS/2 fan-base may also be covered by this, the physical size of installed memory on my machine is 4G. What this means is that I am no longer focused on the hypothetical amount of process space I can support, and in case the physical memory runs out the appropriate contents will be shuffled off to the swap file in order to free up memory for the newly loaded process.
Instead, given that I have 3.2G of addressable physical memory visible to OS/2, I am focused on how that memory is being allocated by the kernel and of course how the user adjustable settings/controls impact this.
The undeniable result is that VIRTUALADDRESSLIMIT= setting dictates how much memory the OS/2 kernel will allocate towards it's "system" use, and by doing so make that amount of memory unavailable to the process side of it.
Seriously...the JFS cache size use-case is literally a "black and white" test here. Unless I allow the system to allocate LESS physical memory in support of the VIRTUALADDRESSLIMIT setting, I cannot use that memory to implement the sort of "system" controls I am telling my machine to utilize.
Whiel I think I understand how this work, I do find this to be counterintuitive, expecting that should a VAL be set sky-high I should in fact be able to request a 1G JFS cache, have the system successfully allocate that space and accordingly pare-back the total process space memory available. Clearly that is not what happens.