Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 349494 Details for
Bug 471624
www-client/firefox on ia64 - Firefox 10 randomly stops responding, eating 100% CPU
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Port of fix-gc-hang-on-large-pages.patch from Stephan Schreiber on Debian
firefox-10.0.11-fix-gc-hang-on-large-pages.patch (text/plain), 2.27 KB, created by
Émeric Maschino
on 2013-05-28 20:29:50 UTC
(
hide
)
Description:
Port of fix-gc-hang-on-large-pages.patch from Stephan Schreiber on Debian
Filename:
MIME Type:
Creator:
Émeric Maschino
Created:
2013-05-28 20:29:50 UTC
Size:
2.27 KB
patch
obsolete
>--- a/js/src/jsgc.cpp 2012-12-15 17:19:27.919779697 +0100 >+++ b/js/src/jsgc.cpp 2012-12-15 17:22:09.267787141 +0100 >@@ -92,16 +92,18 @@ > #include "vm/Debugger.h" > #include "vm/String.h" > > #include "jsobjinlines.h" > > #include "vm/CallObject-inl.h" > #include "vm/String-inl.h" > >+#include "yarr/PageBlock.h" /* for pageSize() */ >+ > #ifdef MOZ_VALGRIND > # define JS_VALGRIND > #endif > #ifdef JS_VALGRIND > # include <valgrind/memcheck.h> > #endif > > using namespace mozilla; >@@ -2380,16 +2382,23 @@ ReleaseObservedTypes(JSContext *cx) > } > > return releaseTypes; > } > > static void > DecommitFreePages(JSContext *cx) > { >+ /* >+ * If the ArenaSize is smaller than a memory page, we don't attempt to >+ * decommit anything because DecommitMemory() would always fail. >+ */ >+ if (ArenaSize < pageSize()) >+ return; >+ > JSRuntime *rt = cx->runtime; > > for (GCChunkSet::Range r(rt->gcChunkSet.all()); !r.empty(); r.popFront()) { > Chunk *chunk = r.front(); > while (chunk) { > ArenaHeader *aheader = static_cast<ArenaHeader*>(chunk->info.freeArenasHead); > > /* >@@ -2402,24 +2411,23 @@ DecommitFreePages(JSContext *cx) > while (aheader) { > /* Store aside everything we will need after decommit. */ > ArenaHeader *next = aheader->next; > > bool success = DecommitMemory(aheader, ArenaSize); > if (!success) { > aheader->next = chunk->info.freeArenasHead; > chunk->info.freeArenasHead = aheader; >- continue; >+ } else { >+ size_t arenaOffset = Chunk::arenaIndex(reinterpret_cast<uintptr_t>(aheader)); >+ chunk->decommittedArenas.set(arenaOffset); >+ --chunk->info.numArenasFreeCommitted; >+ --rt->gcNumFreeArenas; > } > >- size_t arenaOffset = Chunk::arenaIndex(reinterpret_cast<uintptr_t>(aheader)); >- chunk->decommittedArenas.set(arenaOffset); >- --chunk->info.numArenasFreeCommitted; >- --rt->gcNumFreeArenas; >- > aheader = next; > } > > chunk = chunk->info.next; > } > } > } > > >Signed-off-by: Stephan Schreiber <info@fs-driver.org> >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 471624
: 349494 |
349496