> (FIXME: how to deal with high-to-low allocation of JITed code segments
> efficiently? Just leave the sample address as VMA and have a post
> processing pass that read in the JITed files and samples and sorts the
> JITed methods, combines them into a single block, converts the VMAs
> into offset, new files written, so this doesn't screw up the daemon or
> currently running java code.)

Does the JVM use a fixed amount of memory and drop some segments
if there is not enough free room in the translation buffer ?

For IBM java, it allocates more memory.

Does this occurs never/rarely/commonly ?

common for large apps.

The JVM can unload classes and reuse the space. It can also rejit into a new area.
There are JVM options to control this behavior.

Is it required by the JVM definition that all processes
get a different address space ?

No.  IBM/SUN java clones so they share the address space.