2011-02-04 Ilya Tikhonovsky <loislo@chromium.org>
authorloislo@chromium.org <loislo@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 13:03:21 +0000 (13:03 +0000)
committerloislo@chromium.org <loislo@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 13:03:21 +0000 (13:03 +0000)
        Unreviewed rollout two patches r77614 and r77612.

        REGRESSION: Snow Leopard Intell Release anumber of failing tests.

        * runtime/Heap.cpp:
        (JSC::Heap::Heap):
        (JSC::Heap::reset):
        * runtime/Heap.h:
        * runtime/MarkedSpace.cpp:
        (JSC::MarkedSpace::allocate):
        (JSC::MarkedSpace::sweep):
        (JSC::MarkedSpace::reset):
        * runtime/MarkedSpace.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77619 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/Heap.cpp
Source/JavaScriptCore/runtime/Heap.h
Source/JavaScriptCore/runtime/MarkedSpace.cpp
Source/JavaScriptCore/runtime/MarkedSpace.h

index bc77dbab80765233cddfdd4bbd9163b0d4af14bd..885966fa2b3a4b556c426279bb184e077f32a7d9 100644 (file)
@@ -1,3 +1,19 @@
+2011-02-04  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        Unreviewed rollout two patches r77614 and r77612.
+
+        REGRESSION: Snow Leopard Intell Release anumber of failing tests.
+
+        * runtime/Heap.cpp:
+        (JSC::Heap::Heap):
+        (JSC::Heap::reset):
+        * runtime/Heap.h:
+        * runtime/MarkedSpace.cpp:
+        (JSC::MarkedSpace::allocate):
+        (JSC::MarkedSpace::sweep):
+        (JSC::MarkedSpace::reset):
+        * runtime/MarkedSpace.h:
+
 2011-02-04  Geoffrey Garen  <ggaren@apple.com>
 
         Try to fix 32bit build.
index 72d7188b868ce653c70d59c2ac854e55a8bb778b..89cc6f82e149e9892c3b49c4367f81367ed6e9ba 100644 (file)
 #include "JSLock.h"
 #include "JSONObject.h"
 #include "Tracing.h"
-#include <algorithm>
 
 #define COLLECT_ON_EVERY_ALLOCATION 0
 
-using namespace std;
-
 namespace JSC {
 
-const size_t minBytesPerCycle = 512 * 1024;
-
 Heap::Heap(JSGlobalData* globalData)
-    : m_operationInProgress(NoOperation)
-    , m_markedSpace(globalData)
+    : m_markedSpace(globalData)
+    , m_operationInProgress(NoOperation)
     , m_markListSet(0)
     , m_activityCallback(DefaultGCActivityCallback::create(this))
     , m_globalData(globalData)
@@ -386,10 +381,6 @@ void Heap::reset(SweepToggle sweepToggle)
     if (sweepToggle == DoSweep)
         m_markedSpace.sweep();
 
-    size_t usedCellCount = m_markedSpace.markedCells();
-    size_t proportionalBytes = static_cast<size_t>(usedCellCount * 1.5 * HeapConstants::cellSize);
-    m_markedSpace.setHighWaterMark(max(proportionalBytes, minBytesPerCycle));
-
     JAVASCRIPTCORE_GC_END();
 
     (*m_activityCallback)();
index 1e2f5856ffbb29e7097caf02fdaeed2f733bdd3c..a896819e8b72a071967fdd0b70cbc62dd0ece9ba 100644 (file)
@@ -122,8 +122,8 @@ namespace JSC {
 
         RegisterFile& registerFile();
 
-        OperationInProgress m_operationInProgress;
         MarkedSpace m_markedSpace;
+        OperationInProgress m_operationInProgress;
 
         ProtectCountSet m_protectedValues;
         Vector<PageAllocationAligned> m_weakGCHandlePools;
index 869a03feda2b402974c0c796a2857e13a912f196..027a9731a9885d8f4da271230d869c3486668226 100644 (file)
@@ -138,12 +138,8 @@ void* MarkedSpace::allocate(size_t s)
             m_heap.nextCell = block->marked.nextPossiblyUnset(m_heap.nextCell);
         } while (m_heap.nextCell != HeapConstants::cellsPerBlock);
         m_heap.nextCell = 0;
-        m_heap.waterMark += BLOCK_SIZE;
     } while (++m_heap.nextBlock != m_heap.usedBlocks);
-
-    if (m_heap.waterMark < m_heap.highWaterMark)
-        return &allocateBlock()->cells[m_heap.nextCell++];
-
+    
     return 0;
 }
 
@@ -274,8 +270,6 @@ void MarkedSpace::sweep()
         new (cell) JSCell(dummyMarkableCellStructure);
 #endif
     }
-    
-    shrinkBlocks(0);
 }
 
 size_t MarkedSpace::objectCount() const
@@ -300,10 +294,10 @@ void MarkedSpace::reset()
 {
     m_heap.nextCell = 0;
     m_heap.nextBlock = 0;
-    m_heap.waterMark = 0;
 #if ENABLE(JSC_ZOMBIES)
     sweep();
 #endif
+    resizeBlocks();
 }
 
 LiveObjectIterator MarkedSpace::primaryHeapBegin()
index ab656191ce9d0b70275c8316e1c5cde07069685f..a2bdb31e84329ec6d7b4874efbc2690681a89c26 100644 (file)
@@ -47,9 +47,6 @@ namespace JSC {
         
         size_t numBlocks;
         size_t usedBlocks;
-        
-        size_t waterMark;
-        size_t highWaterMark;
 
         MarkedBlock* collectorBlock(size_t index) const
         {
@@ -71,16 +68,12 @@ namespace JSC {
 
         JSGlobalData* globalData() { return m_globalData; }
 
-        size_t highWaterMark() { return m_heap.highWaterMark; }
-        void setHighWaterMark(size_t highWaterMark) { m_heap.highWaterMark = highWaterMark; }
-
         void* allocate(size_t);
 
         void clearMarkBits();
         void markRoots();
         void reset();
         void sweep();
-        size_t markedCells(size_t startBlock = 0, size_t startCell = 0) const;
 
         size_t size() const;
         size_t capacity() const;
@@ -101,6 +94,7 @@ namespace JSC {
         void shrinkBlocks(size_t neededBlocks);
 
         void clearMarkBits(MarkedBlock*);
+        size_t markedCells(size_t startBlock = 0, size_t startCell = 0) const;
 
         CollectorHeap m_heap;
         JSGlobalData* m_globalData;