Skip to content

Commit

Permalink
deps: backport 2bcbe2f from V8 upstream
Browse files Browse the repository at this point in the history
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: #7814
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
ofrobots authored and Myles Borins committed Oct 10, 2016
1 parent cfafda1 commit 004d665
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 11 deletions.
2 changes: 1 addition & 1 deletion deps/v8/include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.)
Expand Down
12 changes: 2 additions & 10 deletions deps/v8/src/log.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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_;
};

Expand All @@ -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);
}


Expand Down Expand Up @@ -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);

Expand All @@ -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();
}
Expand Down

0 comments on commit 004d665

Please sign in to comment.