On Mon, 4 Nov 2024 14:04:58 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:
>>> Looking good, small nits remain. Could you share an example output (maybe >>> one run with G1, one with ZGC?) >> >> @tstuefe, Sample output for G1 and ZGC has been attached to the description >> (and I fixed the ZGC test) > > Hi @stooke, > > nice. There are some aspects about the output that is surprising, though. I > expect reserved-only memory to be mapped with MAP_NORESERVE and no access > rights. I expect committed memory to be mapped without MAP_NORESERVE and > write- or executable access. > > - (G1) I only see one segment for JAVAHEAP. I would expect at least two, one > reserved-only, one reserved and committed. Or did you precommit the heap > (start JVM with -Xmx==-Xms)? Can you please test that with ParallelGC and > without specifying Xms, we should see four java heap mappings side by side, > for young and old gen, each with a committed part (rw) and a reserved part > (not accessible). Like we do now for the CODE section. Please also > countercheck that the address ranges are correct against the heap range > (easiest, run jcmd .. VM.info and look for the Heap section, it tells you the > address ranges). > - The 64K META and CLASS blocks confuse me. For one, they are too small. A > Metaspace node is 64M sized. It can contain multiple committed and reserved > sections, so typically spreads over multiple lines, but usually not many. > Here (G1 file), I see many that are 64K in size, spanning in total just about > 5MB. You can counter-check the META blocks with `jcmd .. VM.metaspace vslist` > - it prints the virtual space node list at the start. > - Another thing that is strange is that the MEAT lines are not coalesced, > though the properties displayed seem to be the same. But that can be the > result of hidden properties being different. > > Also, could you rename the OS-specific names to `[lowercase-something]`? The > `[UPPERCASE]` names are easily confused with the uppercase NMT tags. > > Thanks! Hello, @tstuefe , and thanks for your comments. I'll address a few here while I work on the others. I have changed the os-specific names to lowercase, but I don't think it makes them stand out more. The square brackets were intended to do that. Might I change this back? I think there is only one JAVAHEAP segment because due to an issue with my build[1] there was no CDS archive available. I will look at the META and CLASS entries and see if there are hidden properties that I can surface, or if there's another reason for so many entries. [1] I had given a target architecture to the configure command, which turned on cross-compiles (which disables CDS archive building) even when building on the target platform. ------------- PR Comment: https://git.openjdk.org/jdk/pull/20953#issuecomment-2476459287