On Wed, 21 Oct 2020 20:04:54 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> 
> 
> I'm not following how the introduction of LinkedListOfLongArrays is making 
> the OOME even more reliable. Can you please elaborate?

The new LinkedListOfLongArrays is created by renaming LinkedList to
LinkedListOfLongArrays. The new LinkedList is a list node without payload, so it
is smaller than a LinkedListOfLongArrays node. I try to fill the last free
blocks with these. But yeah, this won't make that much of a difference.

> Is consumeAllMemory() being called from a different thread than the one doing
> the forceEarlyReturn? If so, you might be running into an issue because the
> tlab still has available memory to allocate.

Yes, the threads are different (well observed :)). As far as I know tlabs are
retired before gc. I'd expect that they are allocated lazily. So the jdwp agent
thread that does the forceEarlyReturn should not have a tlab at hand. Certainly
these are just assumptions. It would be easy to implement the gc interface(*)
with different heuristics.

(*) Roman Kennke and Aleksey Shipilev demo'ed implementing the gc interface in a
FOSDEM talk.

-------------

PR: https://git.openjdk.java.net/jdk/pull/775

Reply via email to