Revert r12625 due to sandbox incompatibility.

Original message: Implement committed physical memory stats for Linux.
This had to be reverted because it crashes when compiled into Chromium
due to the sandbox not allowing the mincore call.

R=verwaest@chromium.org
BUG=v8:2191

Review URL: https://codereview.chromium.org/11023010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 15ebb22b
......@@ -2766,7 +2766,6 @@ class V8EXPORT HeapStatistics {
HeapStatistics();
size_t total_heap_size() { return total_heap_size_; }
size_t total_heap_size_executable() { return total_heap_size_executable_; }
size_t total_physical_size() { return total_physical_size_; }
size_t used_heap_size() { return used_heap_size_; }
size_t heap_size_limit() { return heap_size_limit_; }
......@@ -2775,15 +2774,11 @@ class V8EXPORT HeapStatistics {
void set_total_heap_size_executable(size_t size) {
total_heap_size_executable_ = size;
}
void set_total_physical_size(size_t size) {
total_physical_size_ = size;
}
void set_used_heap_size(size_t size) { used_heap_size_ = size; }
void set_heap_size_limit(size_t size) { heap_size_limit_ = size; }
size_t total_heap_size_;
size_t total_heap_size_executable_;
size_t total_physical_size_;
size_t used_heap_size_;
size_t heap_size_limit_;
......
......@@ -4306,7 +4306,6 @@ bool v8::V8::Dispose() {
HeapStatistics::HeapStatistics(): total_heap_size_(0),
total_heap_size_executable_(0),
total_physical_size_(0),
used_heap_size_(0),
heap_size_limit_(0) { }
......@@ -4316,7 +4315,6 @@ void v8::V8::GetHeapStatistics(HeapStatistics* heap_statistics) {
// Isolate is unitialized thus heap is not configured yet.
heap_statistics->set_total_heap_size(0);
heap_statistics->set_total_heap_size_executable(0);
heap_statistics->set_total_physical_size(0);
heap_statistics->set_used_heap_size(0);
heap_statistics->set_heap_size_limit(0);
return;
......@@ -4326,7 +4324,6 @@ void v8::V8::GetHeapStatistics(HeapStatistics* heap_statistics) {
heap_statistics->set_total_heap_size(heap->CommittedMemory());
heap_statistics->set_total_heap_size_executable(
heap->CommittedMemoryExecutable());
heap_statistics->set_total_physical_size(heap->CommittedPhysicalMemory());
heap_statistics->set_used_heap_size(heap->SizeOfObjects());
heap_statistics->set_heap_size_limit(heap->MaxReserved());
}
......
......@@ -211,20 +211,6 @@ intptr_t Heap::CommittedMemory() {
lo_space_->Size();
}
size_t Heap::CommittedPhysicalMemory() {
if (!HasBeenSetUp()) return 0;
return new_space_.CommittedPhysicalMemory() +
old_pointer_space_->CommittedPhysicalMemory() +
old_data_space_->CommittedPhysicalMemory() +
code_space_->CommittedPhysicalMemory() +
map_space_->CommittedPhysicalMemory() +
cell_space_->CommittedPhysicalMemory() +
lo_space_->CommittedPhysicalMemory();
}
intptr_t Heap::CommittedMemoryExecutable() {
if (!HasBeenSetUp()) return 0;
......
......@@ -486,9 +486,6 @@ class Heap {
// Returns the amount of executable memory currently committed for the heap.
intptr_t CommittedMemoryExecutable();
// Returns the amount of phyical memory currently committed for the heap.
size_t CommittedPhysicalMemory();
// Returns the available bytes in space w/o growing.
// Heap doesn't guarantee that it can allocate an object that requires
// all available bytes. Check MaxHeapObjectSize() instead.
......
......@@ -359,13 +359,6 @@ bool VirtualMemory::Guard(void* address) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() : thread_(kNoThread) {}
......
......@@ -456,13 +456,6 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
pthread_t thread_; // Thread handle for pthread.
......
......@@ -701,24 +701,6 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
const size_t page_size = sysconf(_SC_PAGESIZE);
base = reinterpret_cast<void*>(
reinterpret_cast<intptr_t>(base) & ~(page_size - 1));
const size_t pages = (size + page_size - 1) / page_size;
ScopedVector<unsigned char> buffer(pages);
int result = mincore(base, size, buffer.start());
if (result) return false;
int resident_pages = 0;
for (unsigned i = 0; i < pages; ++i) {
resident_pages += buffer[i] & 1;
}
*physical = resident_pages * page_size;
return true;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() : thread_(kNoThread) {}
......
......@@ -471,13 +471,6 @@ bool VirtualMemory::ReleaseRegion(void* address, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() : thread_(kNoThread) {}
......
......@@ -335,13 +335,6 @@ bool VirtualMemory::Guard(void* address) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() {
......
......@@ -504,13 +504,6 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() : thread_(kNoThread) {}
......
......@@ -448,13 +448,6 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
class Thread::PlatformData : public Malloced {
public:
PlatformData() : thread_(kNoThread) { }
......
......@@ -1551,13 +1551,6 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
}
bool VirtualMemory::CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical) {
// TODO(alph): implement for the platform.
return false;
}
// ----------------------------------------------------------------------------
// Win32 thread support.
......
......@@ -429,14 +429,6 @@ class VirtualMemory {
// and the same size it was reserved with.
static bool ReleaseRegion(void* base, size_t size);
// Returns the size of committed memory which is currently resident
// in the physical memory for the region specified with base and size
// arguments.
// On success stores the committed physical memory size at the location
// pointed by the last argument and returns true. Returns false on failure.
static bool CommittedPhysicalSizeInRegion(
void* base, size_t size, size_t* physical);
private:
void* address_; // Start address of the virtual memory.
size_t size_; // Size of the virtual memory.
......
......@@ -488,18 +488,6 @@ void MemoryChunk::Unlink() {
}
size_t MemoryChunk::CommittedPhysicalMemory() {
size_t physical;
size_t size = area_size();
if (VirtualMemory::CommittedPhysicalSizeInRegion(
area_start_, size, &physical)) {
return physical;
} else {
return size;
}
}
MemoryChunk* MemoryAllocator::AllocateChunk(intptr_t body_size,
Executability executable,
Space* owner) {
......@@ -832,16 +820,6 @@ void PagedSpace::TearDown() {
}
size_t PagedSpace::CommittedPhysicalMemory() {
size_t size = 0;
PageIterator it(this);
while (it.has_next()) {
size += it.next()->CommittedPhysicalMemory();
}
return size;
}
MaybeObject* PagedSpace::FindObject(Address addr) {
// Note: this function can only be called on precisely swept spaces.
ASSERT(!heap()->mark_compact_collector()->in_use());
......@@ -1407,17 +1385,6 @@ bool SemiSpace::Uncommit() {
}
size_t SemiSpace::CommittedPhysicalMemory() {
if (!is_committed()) return 0;
size_t size = 0;
NewSpacePageIterator it(this);
while (it.has_next()) {
size += it.next()->CommittedPhysicalMemory();
}
return size;
}
bool SemiSpace::GrowTo(int new_capacity) {
if (!is_committed()) {
if (!Commit()) return false;
......@@ -2722,17 +2689,6 @@ MaybeObject* LargeObjectSpace::AllocateRaw(int object_size,
}
size_t LargeObjectSpace::CommittedPhysicalMemory() {
size_t size = 0;
LargePage* current = first_page_;
while (current != NULL) {
size += current->CommittedPhysicalMemory();
current = current->next_page();
}
return size;
}
// GC support
MaybeObject* LargeObjectSpace::FindObject(Address a) {
LargePage* page = FindPage(a);
......
......@@ -653,8 +653,6 @@ class MemoryChunk {
return static_cast<int>(area_end() - area_start());
}
size_t CommittedPhysicalMemory();
protected:
MemoryChunk* next_chunk_;
MemoryChunk* prev_chunk_;
......@@ -1530,9 +1528,6 @@ class PagedSpace : public Space {
// spaces this equals the capacity.
intptr_t CommittedMemory() { return Capacity(); }
// Total amount of physical memory committed for this space.
size_t CommittedPhysicalMemory();
// Sets the capacity, the available space and the wasted space to zero.
// The stats are rebuilt during sweeping by adding each page to the
// capacity and the size when it is encountered. As free spaces are
......@@ -1999,8 +1994,6 @@ class SemiSpace : public Space {
static void Swap(SemiSpace* from, SemiSpace* to);
size_t CommittedPhysicalMemory();
private:
// Flips the semispace between being from-space and to-space.
// Copies the flags into the masked positions on all pages in the space.
......@@ -2198,12 +2191,6 @@ class NewSpace : public Space {
return Capacity();
}
size_t CommittedPhysicalMemory() {
return to_space_.CommittedPhysicalMemory()
+ (from_space_.is_committed() ? from_space_.CommittedPhysicalMemory()
: 0);
}
// Return the available bytes without growing.
intptr_t Available() {
return Capacity() - Size();
......@@ -2571,8 +2558,6 @@ class LargeObjectSpace : public Space {
return Size();
}
size_t CommittedPhysicalMemory();
int PageCount() {
return page_count_;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment