Closed Bug 583868 Opened 14 years ago Closed 14 years ago

TM: OOM for v8-splay.js

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- beta5+

People

(Reporter: gwagner, Assigned: cdleary)

Details

Attachments

(1 file, 1 obsolete file)

Current tip fails to run v8-splay.js host-5-167:OPT.OBJ idefix2$ ./js -j ../../../../WebKit/SunSpider/tests/v8-v4/v8-splay.js ../../../../WebKit/SunSpider/tests/v8-v4/v8-splay.js:48: out of memory Are there any tinderbox logs for v8 benchmarks where we can find out which patch caused this OOM? I saw that we allocate almost the whole heap for this benchmark last week. Maybe its time to increase the heap size for the shell.
If the shell heap size changes, we should also change the browser heap size to match (which, I believe, is the JS_SetGCParameter call in nsJSEnvironment).
also js1_5/GC/regress-203278-2.js from jsreftests fails now because of OOM.
blocking2.0: --- → beta5+
Attached patch Increase max heap size to 128MiB. (obsolete) (deleted) — Splinter Review
Bumping into this myself.
Assignee: general → cdleary
Status: NEW → ASSIGNED
Attachment #462717 - Flags: review?
Attachment #462717 - Flags: review? → review?(lw)
Comment on attachment 462717 [details] [diff] [review] Increase max heap size to 128MiB. Gregor, you fixed this in your patch. Did you have to bump this too?
Attachment #462717 - Flags: review?(lw) → review?(anygregor)
Comment on attachment 462717 [details] [diff] [review] Increase max heap size to 128MiB. >diff --git a/dom/base/nsJSEnvironment.cpp b/dom/base/nsJSEnvironment.cpp >--- a/dom/base/nsJSEnvironment.cpp >+++ b/dom/base/nsJSEnvironment.cpp >@@ -3981,17 +3981,17 @@ SetMemoryHighWaterMarkPrefChangedCallbac > > if (highwatermark >= 32) { > // There are two options of memory usage in tracemonkey. One is > // to use malloc() and the other is to use memory for GC. (E.g. > // js_NewGCThing()/RefillDoubleFreeList()). > // Let's limit the high water mark for the first one to 32MB, > // and second one to 0xffffffff. > JS_SetGCParameter(nsJSRuntime::sRuntime, JSGC_MAX_MALLOC_BYTES, >- 64L * 1024L * 1024L); >+ 128L * 1024L * 1024L); > JS_SetGCParameter(nsJSRuntime::sRuntime, JSGC_MAX_BYTES, > 0xffffffff); > } else { > JS_SetGCParameter(nsJSRuntime::sRuntime, JSGC_MAX_MALLOC_BYTES, > highwatermark * 1024L * 1024L); > JS_SetGCParameter(nsJSRuntime::sRuntime, JSGC_MAX_BYTES, > highwatermark * 1024L * 1024L); > } I don't think we have to update JSGC_MAX_MALLOC_BYTES. Correct me if I am wrong but this value only triggers a GC if we malloc more data between 2 GCs. We definitely have to update the comment. No more doubleFreeList :) MAX_BYTES is the limiting value but this is set to 0xffffffff in the browser. >diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp >--- a/js/src/shell/js.cpp >+++ b/js/src/shell/js.cpp >@@ -5056,17 +5056,17 @@ main(int argc, char **argv, char **envp) > > #ifdef XP_WIN > // Set the timer calibration delay count to 0 so we get high > // resolution right away, which we need for precise benchmarking. > extern int CALIBRATION_DELAY_COUNT; > CALIBRATION_DELAY_COUNT = 0; > #endif > >- rt = JS_NewRuntime(64L * 1024L * 1024L); >+ rt = JS_NewRuntime(128L * 1024L * 1024L); > if (!rt) > return 1; > > if (!InitWatchdog(rt)) > return 1; > > cx = NewContext(rt); > if (!cx) That change looks good.
Get rid of jsmalloc cap change.
Attachment #462717 - Attachment is obsolete: true
Attachment #462942 - Flags: review?(anygregor)
Attachment #462717 - Flags: review?(anygregor)
Attachment #462942 - Flags: review?(anygregor) → review+
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: