Closed Bug 1391306 Opened 3 years ago Closed 3 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, Assigned: ehsan)

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
https://hg.mozilla.org/mozilla-central/rev/3da239c081bc
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.