From e82e80417b65c1a5280efc84aad46b2bdd27d96a Mon Sep 17 00:00:00 2001 From: ofrobots Date: Tue, 7 Jun 2016 06:28:21 -0700 Subject: [PATCH] deps: backport 2bcbe2f from V8 upstream Excessive buffering of perf map files in V8 could cause profiles to be missing symbols at times. Original commit message: switch perf and ll_prof loggers to line buffering BUG=v8:5015 R=jarin@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2041243002 Cr-Commit-Position: refs/heads/master@{#36788} PR-URL: https://github.com/nodejs/node/pull/7814 Reviewed-By: bnoordhuis - Ben Noordhuis --- deps/v8/include/v8-version.h | 2 +- deps/v8/src/log.cc | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index e0027b224ea79a..4d5266ba421bc6 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -11,7 +11,7 @@ #define V8_MAJOR_VERSION 5 #define V8_MINOR_VERSION 0 #define V8_BUILD_NUMBER 71 -#define V8_PATCH_LEVEL 57 +#define V8_PATCH_LEVEL 58 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/src/log.cc b/deps/v8/src/log.cc index cbdd9dd106024d..86de99d06da22c 100644 --- a/deps/v8/src/log.cc +++ b/deps/v8/src/log.cc @@ -248,10 +248,6 @@ class PerfBasicLogger : public CodeEventLogger { static const char kFilenameFormatString[]; static const int kFilenameBufferPadding; - // File buffer size of the low-level log. We don't use the default to - // minimize the associated overhead. - static const int kLogBufferSize = 2 * MB; - FILE* perf_output_handle_; }; @@ -272,7 +268,7 @@ PerfBasicLogger::PerfBasicLogger() perf_output_handle_ = base::OS::FOpen(perf_dump_name.start(), base::OS::LogFileOpenMode); CHECK_NOT_NULL(perf_output_handle_); - setvbuf(perf_output_handle_, NULL, _IOFBF, kLogBufferSize); + setvbuf(perf_output_handle_, NULL, _IOLBF, 0); } @@ -359,10 +355,6 @@ class LowLevelLogger : public CodeEventLogger { // Extension added to V8 log file name to get the low-level log name. static const char kLogExt[]; - // File buffer size of the low-level log. We don't use the default to - // minimize the associated overhead. - static const int kLogBufferSize = 2 * MB; - void LogCodeInfo(); void LogWriteBytes(const char* bytes, int size); @@ -387,7 +379,7 @@ LowLevelLogger::LowLevelLogger(const char* name) MemCopy(ll_name.start() + len, kLogExt, sizeof(kLogExt)); ll_output_handle_ = base::OS::FOpen(ll_name.start(), base::OS::LogFileOpenMode); - setvbuf(ll_output_handle_, NULL, _IOFBF, kLogBufferSize); + setvbuf(ll_output_handle_, NULL, _IOLBF, 0); LogCodeInfo(); }