There are 3 spaces inside young-gen, eden, from, and to spaces. (The latter two are survivor spaces.)
Eden is placed before from/to. This placement makes is hard to expand eden when there is live objs inside from/to spaces. Therefore, one can encounter premature OOM, even when there are still large unused room at the end of young-gen.
One can move eden after from/to spaces so that eden can expand to the end of young-gen in order to satisfy an allocation request.
The same layout is also used in Parallel since JDK-8338977.