gecko-dev/tools
Greg Tatum 63557d95ad Bug 1597972 - Remove the JS frames array from being stack allocated; r=gerald
The native allocations feature added stackwalking that can happen anywhere that
memory is allocated. This means that stackwalking happens in places where the
execution already has a very large execution stack. Stackwalking was relying
on stack-allocated buffers used for merging stacks. This was taking up 64kb of
stack space. On Linux, this was causing a stack overflow, as there is only 256kb of
stack space. I encountered a crash while using GDB. Using pointer arithmetic,
I determined that the stack size before stack walking was around 20kb, and during
stackwalking, we overflowed the stack (>256kb). The largest culprit was the
JS::ProfilingFrameIterator::Frame jsFrames[MAX_JS_FRAMES]. In addition,
Bug 1468789 added another member to the Frame class, also increasing the size
of the stack allocation.

I changed the implementation to allocate some memory on the CorePS class, and
share that with every stackwalk that happens. I tested this loading a large news
site, and didn't get any crashes.

Differential Revision: https://phabricator.services.mozilla.com/D54072

--HG--
extra : moz-landing-system : lando
2019-11-22 19:50:25 +00:00
..
bloatview
browsertime Bug 1594795 - Fix local browsertime issues on Windows and MacOS. r=perftest-reviewers,barret,stephendonner,davehunt 2019-11-19 14:08:40 +00:00
clang-tidy Bug 1558359 - clang-tidy - For `performance-move-const-arg` disable detection of trivially copyable types that do not have a move constructor. r=sylvestre 2019-10-16 12:59:33 +00:00
code-coverage Bug 1578730 - Add js::GetCodeCovergeSummaryAll API. r=nbp,marco 2019-09-19 00:08:39 +00:00
compare-locales Backed out changeset 35d4451f348d (bug 1588458) as requested by the dev 2019-10-15 19:04:22 +03:00
coverity Bug 1590415 - Remove deprecated code from the Coverity model file. r=sylvestre 2019-10-22 16:38:50 +00:00
crashreporter Bug 1582574 - Make minidump_stackwalk toolchain binary compatible with both older and newer Debian/Ubuntu. r=froydnj 2019-09-25 22:03:16 +00:00
docs Bug 1564180 - Integrate SpiderMonkey docs with |mach doc|. r=jimb 2019-11-19 07:28:10 +00:00
fuzzing Bug 1584446 - Add an rkv fuzzing test for bug mdb_cursor_put, r=truber 2019-10-02 15:17:13 +00:00
infer Bug 1576659 - Update infer to 0.17.0. r=bastien 2019-09-13 14:25:32 +00:00
jprof Bug 1559975 - fix python2 linter error for tools/jprof/split-profile.py r=ahal 2019-07-16 17:47:33 +00:00
leak-gauge
lint Backed out 2 changesets (bug 1596911) for license failures on several files. CLOSED TREE 2019-11-22 21:24:25 +02:00
performance
power Bug 1559975 - Make directories python3 compatible r=catlee 2019-07-02 15:47:34 +00:00
profiler Bug 1597972 - Remove the JS frames array from being stack allocated; r=gerald 2019-11-22 19:50:25 +00:00
quitter Bug 1562642 - Part 4 - Add missing MPL2 headers in tools r=ahal 2019-07-10 19:12:07 +00:00
rb Bug 1559977 - Remove tools/rb from py3/py2 linter exclusion list r=ahal 2019-10-15 20:58:35 +00:00
rewriting Bug 1596911 - Add browser/extensions/formautofill/content/third-party/ to thirdparty r=MattN 2019-11-21 18:43:59 +00:00
tryselect Bug 1598142 - [tryselect] Prevent pushing to try with both artifact builds and --pernosco, r=jmaher 2019-11-20 23:42:41 +00:00
update-packaging Bug 1578497 - Overwrite notarization ticket on each partial update instead of patching, so pkgs can be updated, r=bhearsum 2019-10-01 02:42:10 +00:00
update-verify Bug 1588649 - release update verify secondary failing for 70.0, r=jlund 2019-10-15 22:36:25 +00:00
vcs Bug 1594182 - Move wgpu stuff under gfx/wgpu r=jgilbert,remote-protocol-reviewers 2019-11-15 00:29:53 +00:00
mach_commands.py Bug 1574977: restore `mach pastebin` and port to new service r=nalexander 2019-08-22 18:11:26 +00:00
moz.build Bug 1594925 - Create a documentation section in the doc r=ahal 2019-11-15 21:01:04 +00:00