Closed Bug 1391306 Opened 8 years ago Closed 8 years ago

CycleCollectedJSRuntime does double hashtable lookups on mJSHolderMap

Categories

(Core :: XPCOM, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: ehsan.akhgari, Assigned: ehsan.akhgari)

Details

Attachments

(1 file, 1 obsolete file)

We now have more modern hashtable APIs that make it possible to implement AddJSHolder() and RemoveJSHolder() with 1 and 2 lookups, respectively, as opposed to 2 and 3.
Attachment #8898373 - Flags: review?(nfroyd) → review+
Pushed by eakhgari@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/9c364b2c35d3 Reduce the hashtable lookups in CycleCollectedJSRuntime::Add/RemoveJSHolder by one each; r=mccr8
Backed out for failing selftest.py during build: https://hg.mozilla.org/integration/mozilla-inbound/rev/abc85ce83caa024f5832f17a4955047a76520e95 Push with bustage: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=9c364b2c35d3e6af0b8585258d6ab0a336d8c0e7&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=123910598&repo=mozilla-inbound [task 2017-08-17T18:22:45.121907Z] 18:22:45 INFO - TEST-PASS | /home/worker/workspace/build/src/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py | TestToolkitMozConfigure.test_developer_options [task 2017-08-17T18:22:45.122121Z] 18:22:45 INFO - TEST-PASS | /home/worker/workspace/build/src/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py | TestToolkitMozConfigure.test_necko_protocols [task 2017-08-17T18:23:22.059828Z] 18:23:22 INFO - /home/worker/workspace/build/src/testing/xpcshell/selftest.py [task 2017-08-17T18:23:22.060077Z] 18:23:22 INFO - TEST-PASS | /home/worker/workspace/build/src/testing/xpcshell/selftest.py | XPCShellTestsTests.testAddTaskRunNextTest [task 2017-08-17T18:23:22.060265Z] 18:23:22 INFO - TEST-PASS | /home/worker/workspace/build/src/testing/xpcshell/selftest.py | XPCShellTestsTests.testAddTaskSkip [task 2017-08-17T18:23:22.060414Z] 18:23:22 INFO - PROCESS-CRASH | test_tasks_skipall.js | application crashed [@ libxul.so + 0x4b7e17] [task 2017-08-17T18:23:22.060566Z] 18:23:22 INFO - Crash dump filename: /tmp/xpc-other-5SlZEl/60f08d05-f406-aae4-4127-b600f5dfa048.dmp [task 2017-08-17T18:23:22.060693Z] 18:23:22 INFO - Operating system: Linux [task 2017-08-17T18:23:22.060899Z] 18:23:22 INFO - 0.0.0 Linux 3.13.0-112-generic #159-Ubuntu SMP Fri Mar 3 15:26:07 UTC 2017 x86_64 [task 2017-08-17T18:23:22.061013Z] 18:23:22 INFO - CPU: x86 [task 2017-08-17T18:23:22.061172Z] 18:23:22 INFO - GenuineIntel family 6 model 63 stepping 2 [task 2017-08-17T18:23:22.061301Z] 18:23:22 INFO - 16 CPUs [task 2017-08-17T18:23:22.061448Z] 18:23:22 INFO - Crash reason: SIGSEGV [task 2017-08-17T18:23:22.061588Z] 18:23:22 INFO - Crash address: 0x0 [task 2017-08-17T18:23:22.061722Z] 18:23:22 INFO - Thread 0 (crashed) [task 2017-08-17T18:23:22.061910Z] 18:23:22 INFO - 0 libxul.so + 0x4b7e17 [task 2017-08-17T18:23:22.062145Z] 18:23:22 INFO - eip = 0xf1f4fe17 esp = 0xff99cbc0 ebp = 0xff99cbd8 ebx = 0xf763c000 [task 2017-08-17T18:23:22.062279Z] 18:23:22 INFO - esi = 0xea187400 edi = 0xf7640c00 eax = 0x00000000 ecx = 0xf112b7cc [task 2017-08-17T18:23:22.062427Z] 18:23:22 INFO - edx = 0x00000000 efl = 0x00010282 [task 2017-08-17T18:23:22.062573Z] 18:23:22 INFO - Found by: given as instruction pointer in context [task 2017-08-17T18:23:22.062725Z] 18:23:22 INFO - 1 libxul.so + 0x4bd15c [task 2017-08-17T18:23:22.064335Z] 18:23:22 INFO - eip = 0xf1f5515d esp = 0xff99cbe0 ebp = 0xff99cc28 [task 2017-08-17T18:23:22.064496Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.064627Z] 18:23:22 INFO - 2 libxul.so + 0x4bd1de [task 2017-08-17T18:23:22.064783Z] 18:23:22 INFO - eip = 0xf1f551df esp = 0xff99cc30 ebp = 0xff99cc48 [task 2017-08-17T18:23:22.064925Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.065054Z] 18:23:22 INFO - 3 libxul.so + 0x4bd264 [task 2017-08-17T18:23:22.065208Z] 18:23:22 INFO - eip = 0xf1f55265 esp = 0xff99cc50 ebp = 0xff99cc78 [task 2017-08-17T18:23:22.065459Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.065648Z] 18:23:22 INFO - 4 libxul.so + 0x189f4fb [task 2017-08-17T18:23:22.065786Z] 18:23:22 INFO - eip = 0xf33374fc esp = 0xff99cc80 ebp = 0xff99cc98 [task 2017-08-17T18:23:22.065928Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.066065Z] 18:23:22 INFO - 5 libxul.so + 0x189f561 [task 2017-08-17T18:23:22.066368Z] 18:23:22 INFO - eip = 0xf3337562 esp = 0xff99cca0 ebp = 0xff99ccb8 [task 2017-08-17T18:23:22.066415Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.066471Z] 18:23:22 INFO - 6 libxul.so + 0x1897379 [task 2017-08-17T18:23:22.066611Z] 18:23:22 INFO - eip = 0xf332f37a esp = 0xff99ccc0 ebp = 0xff99ccd8 [task 2017-08-17T18:23:22.066767Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.066903Z] 18:23:22 INFO - 7 libxul.so + 0x18a2111 [task 2017-08-17T18:23:22.067031Z] 18:23:22 INFO - eip = 0xf333a112 esp = 0xff99cce0 ebp = 0xff99ccf8 [task 2017-08-17T18:23:22.067171Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.067927Z] 18:23:22 INFO - 8 libxul.so + 0x4ce348 [task 2017-08-17T18:23:22.068148Z] 18:23:22 INFO - eip = 0xf1f66349 esp = 0xff99cd00 ebp = 0xff99cd48 [task 2017-08-17T18:23:22.068395Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.068551Z] 18:23:22 INFO - 9 libxul.so + 0x4ce409 [task 2017-08-17T18:23:22.068836Z] 18:23:22 INFO - eip = 0xf1f6640a esp = 0xff99cd50 ebp = 0xff99cd98 [task 2017-08-17T18:23:22.069094Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.069332Z] 18:23:22 INFO - 10 libxul.so + 0x4d0979 [task 2017-08-17T18:23:22.069606Z] 18:23:22 INFO - eip = 0xf1f6897a esp = 0xff99cda0 ebp = 0xff99cdc8 [task 2017-08-17T18:23:22.069897Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.070237Z] 18:23:22 INFO - 11 libxul.so + 0x4d0a5c [task 2017-08-17T18:23:22.070577Z] 18:23:22 INFO - eip = 0xf1f68a5d esp = 0xff99cdd0 ebp = 0xff99ce18 [task 2017-08-17T18:23:22.070769Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.070922Z] 18:23:22 INFO - 12 libxul.so + 0x55410d [task 2017-08-17T18:23:22.071191Z] 18:23:22 INFO - eip = 0xf1fec10e esp = 0xff99ce20 ebp = 0xff99ce78 [task 2017-08-17T18:23:22.071421Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.071609Z] 18:23:22 INFO - 13 libxul.so + 0xcba15a [task 2017-08-17T18:23:22.071811Z] 18:23:22 INFO - eip = 0xf275215b esp = 0xff99ce80 ebp = 0xff99d128 [task 2017-08-17T18:23:22.072074Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.072248Z] 18:23:22 INFO - 14 xpcshell + 0x497b [task 2017-08-17T18:23:22.072559Z] 18:23:22 INFO - eip = 0x0804c97c esp = 0xff99d130 ebp = 0xff99d188 [task 2017-08-17T18:23:22.072921Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.073075Z] 18:23:22 INFO - 15 libc-2.12.so + 0x16d25 [task 2017-08-17T18:23:22.073345Z] 18:23:22 INFO - eip = 0xf0fadd26 esp = 0xff99d190 ebp = 0xff99d218 [task 2017-08-17T18:23:22.073499Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.073701Z] 18:23:22 INFO - 16 xpcshell + 0x4bd4 [task 2017-08-17T18:23:22.074019Z] 18:23:22 INFO - eip = 0x0804cbd5 esp = 0xff99d220 ebp = 0x00000000 [task 2017-08-17T18:23:22.074306Z] 18:23:22 INFO - Found by: previous frame's frame pointer [task 2017-08-17T18:23:22.074580Z] 18:23:22 INFO - 17 xpcshell + 0x4908 [task 2017-08-17T18:23:22.074813Z] 18:23:22 INFO - eip = 0x0804c909 esp = 0xff99d224 ebp = 0x00000000 [task 2017-08-17T18:23:22.075039Z] 18:23:22 INFO - Found by: stack scanning [task 2017-08-17T18:23:22.075228Z] 18:23:22 INFO - 18 xpcshell + 0x1c79f [task 2017-08-17T18:23:22.075530Z] 18:23:22 INFO - eip = 0x080647a0 esp = 0xff99d230 ebp = 0x00000000 [task 2017-08-17T18:23:22.075853Z] 18:23:22 INFO - Found by: stack scanning [task 2017-08-17T18:23:22.076100Z] 18:23:22 INFO - 19 xpcshell + 0x1c78f [task 2017-08-17T18:23:22.076362Z] 18:23:22 INFO - eip = 0x08064790 esp = 0xff99d234 ebp = 0x00000000 [task 2017-08-17T18:23:22.076639Z] 18:23:22 INFO - Found by: stack scanning [task 2017-08-17T18:23:22.076924Z] 18:23:22 INFO - 20 ld-2.12.so + 0xf8df [task 2017-08-17T18:23:22.077171Z] 18:23:22 INFO - eip = 0xf77798e0 esp = 0xff99d238 ebp = 0x00000000 [task 2017-08-17T18:23:22.077362Z] 18:23:22 INFO - Found by: stack scanning
Flags: needinfo?(ehsan)
Attachment #8898373 - Attachment is obsolete: true
Flags: needinfo?(ehsan)
Attachment #8898462 - Flags: review?(continuation) → review+
Pushed by eakhgari@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/3da239c081bc Reduce the hashtable lookups in CycleCollectedJSRuntime::Add/RemoveJSHolder by one each; r=mccr8
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: