Changeset 121218 in webkit for trunk/Source/JavaScriptCore


Ignore:
Timestamp:
Jun 25, 2012, 7:53:39 PM (13 years ago)
Author:
[email protected]
Message:

JSC should try to make profiling deterministic because otherwise reproducing failures is
nearly impossible
https://bugs.webkit.org/show_bug.cgi?id=89940

Rubber stamped by Gavin Barraclough.

This rolls out the part of http://trac.webkit.org/changeset/121215 that introduced randomness
into the system. Now, instead of randomizing the tier-up threshold, we always set it to an
artificially low (and statically predetermined!) value. This gives most of the benefit of
threshold randomization without actually making the system behave completely differently on
each invocation.

  • bytecode/ExecutionCounter.cpp:

(JSC::ExecutionCounter::setThreshold):

  • runtime/Options.cpp:

(Options):
(JSC::Options::initializeOptions):

  • runtime/Options.h:

(Options):

Location:
trunk/Source/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r121215 r121218  
     12012-06-25  Filip Pizlo  <[email protected]>
     2
     3        JSC should try to make profiling deterministic because otherwise reproducing failures is
     4        nearly impossible
     5        https://bugs.webkit.org/show_bug.cgi?id=89940
     6
     7        Rubber stamped by Gavin Barraclough.
     8       
     9        This rolls out the part of http://trac.webkit.org/changeset/121215 that introduced randomness
     10        into the system. Now, instead of randomizing the tier-up threshold, we always set it to an
     11        artificially low (and statically predetermined!) value. This gives most of the benefit of
     12        threshold randomization without actually making the system behave completely differently on
     13        each invocation.
     14
     15        * bytecode/ExecutionCounter.cpp:
     16        (JSC::ExecutionCounter::setThreshold):
     17        * runtime/Options.cpp:
     18        (Options):
     19        (JSC::Options::initializeOptions):
     20        * runtime/Options.h:
     21        (Options):
     22
    1232012-06-22  Filip Pizlo  <[email protected]>
    224
  • trunk/Source/JavaScriptCore/bytecode/ExecutionCounter.cpp

    r121215 r121218  
    145145    }
    146146
    147     int32_t maxThreshold =
    148         codeBlock->globalObject()->weakRandomInteger() % Options::maximumExecutionCountsBetweenCheckpoints;
     147    int32_t maxThreshold;
     148    if (Options::randomizeExecutionCountsBetweenCheckpoints)
     149        maxThreshold = codeBlock->globalObject()->weakRandomInteger() % Options::maximumExecutionCountsBetweenCheckpoints;
     150    else
     151        maxThreshold = Options::maximumExecutionCountsBetweenCheckpoints;
    149152    if (threshold > maxThreshold)
    150153        threshold = maxThreshold;
  • trunk/Source/JavaScriptCore/runtime/Options.cpp

    r121215 r121218  
    6868int32_t executionCounterIncrementForReturn;
    6969
     70bool randomizeExecutionCountsBetweenCheckpoints;
    7071int32_t maximumExecutionCountsBetweenCheckpoints;
    7172
     
    191192    SET(executionCounterIncrementForReturn, 15);
    192193   
     194    SET(randomizeExecutionCountsBetweenCheckpoints, false);
    193195    SET(maximumExecutionCountsBetweenCheckpoints, 1000);
    194196
  • trunk/Source/JavaScriptCore/runtime/Options.h

    r121215 r121218  
    5454extern int32_t executionCounterIncrementForReturn;
    5555
     56extern bool randomizeExecutionCountsBetweenCheckpoints;
    5657extern int32_t maximumExecutionCountsBetweenCheckpoints;
    5758
Note: See TracChangeset for help on using the changeset viewer.