Why does load average on host increases as Allocation Stall happens?

Sundara Mohan M m.sundar85 at gmail.com
Thu Nov 14 18:58:30 UTC 2019


Hi,
   I have notices Load average on the host increases 5 - 10 times when
Allocation Stall happens, trying to understand what causes load average to
increase when this happens.

Looking at the code
zPageAllocator.cpp
do {
// Start asynchronous GC
ZCollectedHeap::heap()->collect(GCCause::_z_allocation_stall);

// Wait for allocation to complete or fail
page = request.wait();
} while (page == gc_marker);

Seems request.wait() is internally doing a get call on ZFuture.

1. Will this use this thread to spin on CPU or it is async (mean this
thread will go to sleep and can be woken up when it is ready and other
process can occupy this CPU)?
2. Since load average increase matches exactly with allocation stall, is
there any other operation (like Flushing page)  can cause this behavior?

Since i haven't enabled "gc,stats" tag in my logging i missed some
information there. Will try to get that information when i can reproduce it.


TIA,
Sundar


More information about the zgc-dev mailing list