Closed
Bug 583868
Opened 14 years ago
Closed 14 years ago
TM: OOM for v8-splay.js
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | beta5+ |
People
(Reporter: gwagner, Assigned: cdleary)
Details
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
gwagner
:
review+
|
Details | Diff | Splinter Review |
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.
Comment 1•14 years ago
|
||
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).
Reporter | ||
Comment 2•14 years ago
|
||
also js1_5/GC/regress-203278-2.js from jsreftests fails now because of OOM.
Updated•14 years ago
|
blocking2.0: --- → beta5+
Assignee | ||
Comment 3•14 years ago
|
||
Bumping into this myself.
Assignee | ||
Updated•14 years ago
|
Attachment #462717 -
Flags: review? → review?(lw)
Comment 4•14 years ago
|
||
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)
Reporter | ||
Comment 5•14 years ago
|
||
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.
Assignee | ||
Comment 6•14 years ago
|
||
Get rid of jsmalloc cap change.
Attachment #462717 -
Attachment is obsolete: true
Attachment #462942 -
Flags: review?(anygregor)
Attachment #462717 -
Flags: review?(anygregor)
Reporter | ||
Updated•14 years ago
|
Attachment #462942 -
Flags: review?(anygregor) → review+
Comment 7•14 years ago
|
||
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.
Description
•