Bug 164472 - REGRESSION (r192721): GC timers stop to work when Heap claims it grew
Summary: REGRESSION (r192721): GC timers stop to work when Heap claims it grew
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-07 03:28 PST by VaL
Modified: 2016-11-09 10:33 PST (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description VaL 2016-11-07 03:28:04 PST
Due to https://bugs.webkit.org/show_bug.cgi?id=151521
when deathRate() now returns 0 (when heap reported that e.g. m_sizeAfterLastEdenCollect > m_sizeBeforeLastEdenCollect or m_sizeAfterLastFullCollect > m_sizeBeforeLastFullCollect after garbage collecting)

GCActivityCallback::didAllocate uses 
    double bytesExpectedToReclaim = static_cast<double>(bytes) * deathRate();
    double newDelay = lastGCLength() / gcTimeSlice(bytesExpectedToReclaim);
    scheduleTimer(newDelay);
which causes newDelay to be positive inf.

GCActivityCallback::scheduleTimer configures the timer to std::chrono::microseconds::max();
and the timer never invoked.