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 -~----------~----~----~----~------~----~------~--~---
