Browse Source

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 <info@bnoordhuis.nl>
v4.x
ofrobots 9 years ago
committed by Myles Borins
parent
commit
52cba4147d
  1. 2
      deps/v8/include/v8-version.h
  2. 12
      deps/v8/src/log.cc

2
deps/v8/include/v8-version.h

@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 4
#define V8_MINOR_VERSION 5
#define V8_BUILD_NUMBER 103
#define V8_PATCH_LEVEL 41
#define V8_PATCH_LEVEL 42
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)

12
deps/v8/src/log.cc

@ -250,10 +250,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_;
};
@ -274,7 +270,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);
}
@ -361,10 +357,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);
@ -389,7 +381,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();
}

Loading…
Cancel
Save