Revision: 3001
Author: [email protected]
Date: Wed Sep 30 15:21:10 2009
Log: Based on a patch submitted by Jens Alfke:

Tag Mac OS X VM regions allocated by V8. This has no effect other than  
making
it possible to identify V8 allocations in the vmmap(1) memory profiling  
tool,
to get a better idea of an embedder's/Chrome's memory usage.
CRBUG=23455
TEST=Tested by running vmmap(1) and looking for "Memory tag=255" in the  
output.

Review URL: http://codereview.chromium.org/244051
http://code.google.com/p/v8/source/detail?r=3001

Modified:
  /branches/bleeding_edge/src/platform-macos.cc

=======================================
--- /branches/bleeding_edge/src/platform-macos.cc       Wed Sep  9 00:51:51 2009
+++ /branches/bleeding_edge/src/platform-macos.cc       Wed Sep 30 15:21:10 2009
@@ -42,6 +42,7 @@
  #include <mach/mach.h>
  #include <mach/semaphore.h>
  #include <mach/task.h>
+#include <mach/vm_statistics.h>
  #include <sys/time.h>
  #include <sys/resource.h>
  #include <sys/types.h>
@@ -121,6 +122,14 @@
  size_t OS::AllocateAlignment() {
    return getpagesize();
  }
+
+
+// Constants used for mmap.
+// kMmapFd is used to pass vm_alloc flags to tag the region with the user
+// defined tag 255 This helps identify V8-allocated regions in memory  
analysis
+// tools like vmmap(1).
+static const int kMmapFd = VM_MAKE_TAG(255);
+static const off_t kMmapFdOffset = 0;


  void* OS::Allocate(const size_t requested,
@@ -128,7 +137,9 @@
                     bool is_executable) {
    const size_t msize = RoundUp(requested, getpagesize());
    int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0);
-  void* mbase = mmap(NULL, msize, prot, MAP_PRIVATE | MAP_ANON, -1, 0);
+  void* mbase = mmap(NULL, msize, prot,
+                     MAP_PRIVATE | MAP_ANON,
+                     kMmapFd, kMmapFdOffset);
    if (mbase == MAP_FAILED) {
      LOG(StringEvent("OS::Allocate", "mmap failed"));
      return NULL;
@@ -280,9 +291,6 @@
  }


-// Constants used for mmap.
-static const int kMmapFd = -1;
-static const int kMmapFdOffset = 0;


  VirtualMemory::VirtualMemory(size_t size) {

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to