searching for reviewer(n)
878f3ec362ff257c1d66df8ce670555d35e4fad0: Bug 1382280 - Update the version of Valgrind in the desktop-build image to one with unstripped shared libraries (part 3). r=n.nethercote.
Julian Seward <jseward@acm.org> - Mon, 07 Aug 2017 11:49:28 +0200 - rev 423463
Push 7761 by jlund@mozilla.com at Fri, 15 Sep 2017 00:19:52 +0000
Bug 1382280 - Update the version of Valgrind in the desktop-build image to one with unstripped shared libraries (part 3). r=n.nethercote. This patch: * Adds a suppression for some leaks in libLLVM-3.6-mesa.so. * Adds Valgrind flag --keep-debuginfo=yes so that the abovementioned leak stacks can be symbolised and hence suppressed even after libLLVM-3.6-mesa.so is unmapped from the process. * Adds Valgrind flag --expensive-definedness-checks=yes as an attempt to reduce Memcheck false positives from LLVM and rustc compiled code. This change is aimed primarily at bug 1365915. MozReview-Commit-ID: KiOZG2O8wzs
fef30348e68c6bc617acb59da2f2435b212be83c: Bug 1354546 - Make LUL read CFI from the main executable on x86_64-Linux. r=n.nethercote.
Julian Seward <jseward@acm.org> - Wed, 12 Apr 2017 07:56:58 +0200 - rev 401065
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1354546 - Make LUL read CFI from the main executable on x86_64-Linux. r=n.nethercote. LUL doesn't read CFI from the main executable on x86_64-linux, and possibly other Linux variants, because SharedLibraryInfo::GetInfoForSelf() doesn't produce a name for the main executable object, even though it does notice the mapping. This causes noticeable unwind breakage because the main executable on Linux contains various wrapper functions pertaining to memory allocation and locking, such as moz_xmalloc, moz_xcalloc, moz_xrealloc mozilla::detail::MutexImpl::lock, mozilla::detail::MutexImpl::unlock and is generally observable on x86_64-Linux as unwinding failures out of functions with addresses around 0x40xxxx, since that's the traditional load address for the main executable. This patch modifies the Linux implementation of GetInfoForSelf() so as to harvest the main executable's name from /proc/self/maps. This is then added into the information acquired from dl_iterate_phdr. As a result GetInfoForSelf() does correctly report the executable name, so LUL reads Dwarf unwind info from it, and the abovementioned unwinding failures disappear.
97064fe644cae6e65387e7a5da4634a2f7ea8aae: Bug 1355052 - Tidy up shared-linux-libraries.cc. r=n.nethercote.
Julian Seward <jseward@acm.org> - Tue, 11 Apr 2017 18:11:16 +0200 - rev 400562
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1355052 - Tidy up shared-linux-libraries.cc. r=n.nethercote. shared-linux-libraries.cc is a maze of ifdefs which is hard to navigate, hard to reason about and gets in the way of making a proper fix for bug 1354546. This bug is for cleanup only. It should not change any functionality. The following changes are made: * adds emacs/vi tab-width lines * removes the ARRAY_SIZE macro as it appears to be unused * documents the 3 different configurations, splits #includes accordingly * comments SharedLibraryInfo::GetInfoForSelf accordingly * wraps some long lines * documents in which cases dl_iterate_phdr is used and in which cases /proc/<pid>/maps is used * Puts /proc/<pid>/maps reading in its own scope * Makes the LOG messages on failure clearer
ada34cba00522abfd3ddc3784f1adaa796a10d64: Bug 1348941. r=n.nethercote
Timothy Nikkel <tnikkel@gmail.com> - Thu, 30 Mar 2017 19:07:04 -0500 - rev 398780
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1348941. r=n.nethercote
ac9d819c57c6f34dbd00fe5aafeed56320ba1d6d: Bug 1344169 - Factor out the common parts of SamplerThread::Run(). r=n.nethercote.
Julian Seward <jseward@acm.org> - Fri, 10 Mar 2017 16:10:14 +0100 - rev 397520
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1344169 - Factor out the common parts of SamplerThread::Run(). r=n.nethercote. All three platform-*.cpp files have similar structure, most especially for SamplerThread::Run(), with considerable duplication. This patch factors out the common parts into a single implementation in platform.cpp. * The top level structure of class SamplerThread has been moved to platform.cpp. * The class has some target-dependent fields, relating to signal handling and thread identity. * There's a single implementation of Run() in platform.cpp. * AllocPlatformData() and PlatformDataDestructor::operator() have also been commoned up and moved into platform.cpp. * Time units in SamplerThread have been tidied up. We now use microseconds throughout, except in the constructor. All time interval field and variable names incorporate the unit (microseconds/milliseconds) for clarity. The Windows uses of such values are scaled up/down by 1000 accordingly. * The pre-existing MacOS Run() implementation contained logic that attempted to keep "to schedule" in the presence of inaccuracy in the actual sleep intervals. This now applies to all targets. A couple of comments on this code have been added. * platform-{win32,macos,linux-android}.cpp have had their Run() methods removed, and all other methods placed in the same sequences, to the extent that is possible. * In the Win32 and MacOS implementations, Thread::SampleContext has been renamed to Thread::SuspendSampleAndResumeThread as that better describes what it does. In the Linux/Android implementation there was no such separate method, so one has been created. * The three Thread::SuspendSampleAndResumeThread methods have been commented in such a way as to emphasise their identical top level structure. * The point in platform.cpp where platform-{win32,macos,linux-android}.cpp are #included has been moved slightly earlier in the file, into the SamplerThread encampment, as that seems like a better place for it.
6235799ad4fd1e408a6c348c41f04d9ff7582e3d: Bug 1345032 - Further cost reductions for ProfileBuffer::FindLastSampleOfThread. r=n.nethercote.
Julian Seward <jseward@acm.org> - Wed, 22 Mar 2017 11:18:31 +0100 - rev 397260
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1345032 - Further cost reductions for ProfileBuffer::FindLastSampleOfThread. r=n.nethercote. ProfileBuffer::FindLastSampleOfThread currently involves a linear search backwards through the sample buffer. Profiling showed that to be the largest profiler cost by far, at least on Linux. Bugs 1344118 and 1344258 significantly improve the situation, collectively reducing the cost by a factor of at least 5 and often much more. But the linear search is still present and still dominant. The worst of it is that it's unnecessary: we could achieve the same by recording the start point of the most recent sample for each thread in that thread's ThreadInfo record. This patch does exactly that, adding the type ProfileBuffer::LastSample to store the start points. LastSample also includes the ID of the thread it pertains to as a read-only field, as that is needed in various places. addTag doesn't check whether we're overwriting buffer entries containing start points. Instead, FindLastSample checks whether the entry pointed to the LastSample it is given still contains a marker.
6f118a165c530082496b03f7de95f1daf0afb073: Bug 1344258 - Remove integer mod from loop in ProfileBuffer::FindLastSampleOfThread. r=n.nethercote.
Julian Seward <jseward@acm.org> - Mon, 06 Mar 2017 16:24:18 +0100 - rev 394328
Push 7391 by mtabara@mozilla.com at Mon, 12 Jun 2017 13:08:53 +0000
Bug 1344258 - Remove integer mod from loop in ProfileBuffer::FindLastSampleOfThread. r=n.nethercote.
50fb726f89a3f91c0082dfb8e7c9a02bef5fa79a: Bug 1343587 - Further suppressions for Mochitests on Valgrind on Taskcluster, March 2017. r=n.nethercote.
Julian Seward <jseward@acm.org> - Thu, 02 Mar 2017 16:14:47 +0100 - rev 392266
Push 7198 by jlorenzo@mozilla.com at Tue, 18 Apr 2017 12:07:49 +0000
Bug 1343587 - Further suppressions for Mochitests on Valgrind on Taskcluster, March 2017. r=n.nethercote.
1e1880fc4d8f9f79dafb440b041efaf84d73bed0: Bug 1342102 - Use the same threading structure in platform-linux-android.cpp as for the -macos and -win32 versions. r=n.nethercote.
Julian Seward <jseward@acm.org> - Wed, 01 Mar 2017 14:57:34 +0100 - rev 391959
Push 7198 by jlorenzo@mozilla.com at Tue, 18 Apr 2017 12:07:49 +0000
Bug 1342102 - Use the same threading structure in platform-linux-android.cpp as for the -macos and -win32 versions. r=n.nethercote. The MacOS and Windows profiler cores have a threading structure where one thread ("sampler thread") collects information from a thread to be profiled ("samplee thread") by suspending it, getting its register state, unwinding its stack, and then resuming it. This requires kernel-level primitives to perform the suspend, get-registers and resume steps. The Linux/Android core is different, because none of those three primitives exist. Until now, data collection has been done by sending a SIGPROF to the samplee, and collecting all relevant data within the signal handler. This has a number of disadvantages: (1) Current work to rationalise/clean up the threading structure of the profiler is complicated by the need to reason about/verify two different schemes. In particular, the Tick call in the Windows and MacOS implementations will produce its output on the sampler thread. In the Linux implementation that is produced on the sampled threads. (2) Dynamic verification results (primarily, absence of data races and deadlocks) established for the Linux implementation are less likely to carry over to the other two implementations, because the threading structures are different. (3) It causes a lot of duplicated code in platform-*.cpp. For example SamplerThread::Run() in the -win32.cpp and -macos.cpp files are very similar. Ideally all three could be merged into a single file with the identical logic commoned up. (4) Running lots of code -- the entire contents of Tick -- in a signal handler isn't considered good practice. POSIX severely restricts the set of functions we can safely call from within a signal handler. This commit changes the Linux implementation by using semaphores to implement the suspend and resume primitives, and moves the bulk of the data collection work to the sampler thread. By doing this, it causes the Linux implementation to have the same threading structure as the other two.
6ef5dd99b45cf4b556e7204ba29c6446f550702a: Bug 1341255 - Profiler tidyups: remove StackEntry, rename ProfileEntry to ProfileBufferEntry (part 2: rename ProfileEntry). r=n.nethercote.
Julian Seward <jseward@acm.org> - Thu, 23 Feb 2017 23:05:23 +0100 - rev 391320
Push 7198 by jlorenzo@mozilla.com at Tue, 18 Apr 2017 12:07:49 +0000
Bug 1341255 - Profiler tidyups: remove StackEntry, rename ProfileEntry to ProfileBufferEntry (part 2: rename ProfileEntry). r=n.nethercote.
5cb0e7cf804be7479edfd75b3cbffd9179691b53: Bug 1341255 - Profiler tidyups: remove StackEntry, rename ProfileEntry to ProfileBufferEntry (part 1: remove StackEntry). r=n.nethercote.
Julian Seward <jseward@acm.org> - Thu, 23 Feb 2017 23:04:13 +0100 - rev 391319
Push 7198 by jlorenzo@mozilla.com at Tue, 18 Apr 2017 12:07:49 +0000
Bug 1341255 - Profiler tidyups: remove StackEntry, rename ProfileEntry to ProfileBufferEntry (part 1: remove StackEntry). r=n.nethercote.
b4d24ef6105c8a2b380caab845f00dc08e8f2cf3: Bug 1334991 - Further suppressions for Mochitests on Valgrind on Taskcluster, Jan 2017. r=n.nethercote.
Julian Seward <jseward@acm.org> - Thu, 02 Feb 2017 10:24:48 +0100 - rev 378817
Push 7198 by jlorenzo@mozilla.com at Tue, 18 Apr 2017 12:07:49 +0000
Bug 1334991 - Further suppressions for Mochitests on Valgrind on Taskcluster, Jan 2017. r=n.nethercote.
41a7afc03d2074da6030295b00389b4963c0a458: Bug 1248365 - Make Valgrind Mochitests run greener on Taskcluster. r=n.nethercote.
Julian Seward <jseward@acm.org> - Mon, 28 Nov 2016 15:46:43 +0100 - rev 369409
Push 6996 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 20:48:21 +0000
Bug 1248365 - Make Valgrind Mochitests run greener on Taskcluster. r=n.nethercote.
87a690e25827b4ce1cd8149c9e87893f6772420a: Bug 1309851 - Fix "Intermittent valgrind-test | Valgrind timed out (reached 1800 second limit)". r=n.nethercote@gmail.com.
Julian Seward <jseward@acm.org> - Thu, 10 Nov 2016 11:25:19 +0100 - rev 364818
Push 6795 by jlund@mozilla.com at Mon, 23 Jan 2017 14:19:46 +0000
Bug 1309851 - Fix "Intermittent valgrind-test | Valgrind timed out (reached 1800 second limit)". r=n.nethercote@gmail.com.
13d3afcb47e455fde5e5c094a31ad540964bdd40: Bug 1264852 - destroy an event tree as it gets processed, r=n.nethercote
Alexander Surkov <surkov.alexander@gmail.com> - Thu, 28 Apr 2016 13:12:46 -0400 - rev 334330
Push 6249 by jlund@mozilla.com at Mon, 01 Aug 2016 13:59:36 +0000
Bug 1264852 - destroy an event tree as it gets processed, r=n.nethercote
f00dc61ce26fffce4060cf86cfde7b28491c68f8: Bug 1264852 - destroy an event tree as it gets processed, r=n.nethercote a=lizzard
Alexander Surkov <surkov.alexander@gmail.com> - Thu, 28 Apr 2016 13:12:46 -0400 - rev 332751
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1264852 - destroy an event tree as it gets processed, r=n.nethercote a=lizzard
b4daad853e4da2d770579cd184b9370e969a3b76: Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=n.nethercote
Wei Wu <lazyparser> - Mon, 14 Dec 2015 01:46:00 +0100 - rev 312300
Push 5703 by raliiev@mozilla.com at Mon, 07 Mar 2016 14:18:41 +0000
Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=n.nethercote
ec32289f301b01648b599da42a036d8969fcf444: Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=n.nethercote
Wei Wu <lazyparser> - Sat, 12 Dec 2015 19:29:00 +0100 - rev 312296
Push 5703 by raliiev@mozilla.com at Mon, 07 Mar 2016 14:18:41 +0000
Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=n.nethercote
ac50c746cfd34a7aeb8c70fbe7edcb201b7f3dbd: Bug 990247 - Conditional jump or move depends on uninitialised value(s) and Use of uninitialised value of size 4 [@ dosprintf]. r=n.nethercote.
Julian Seward <jseward@acm.org> - Mon, 28 Apr 2014 17:17:50 +0200 - rev 199787
Push 3741 by asasaki@mozilla.com at Mon, 21 Jul 2014 20:25:18 +0000
Bug 990247 - Conditional jump or move depends on uninitialised value(s) and Use of uninitialised value of size 4 [@ dosprintf]. r=n.nethercote.
e224847eaf96a98ed2de19a3cb3315bc9c3974c3: Bug 990230 - Fix heap use-after-free in memory reporter. r=n.nethercote
Dave Hylands <dhylands@mozilla.com> - Thu, 17 Apr 2014 16:57:30 -0700 - rev 197687
Push 3624 by asasaki@mozilla.com at Mon, 09 Jun 2014 21:49:01 +0000
Bug 990230 - Fix heap use-after-free in memory reporter. r=n.nethercote
29442be13b0b853f1691aa65db257fe119bc7e4e: Bug 938157 - Lightweight CFI/EXIDX unwinding library for SPS. r=n.nethercote, nfroyd, bgirard.
Julian Seward <jseward@acm.org> - Wed, 18 Dec 2013 13:02:34 +0100 - rev 196868
Push 3624 by asasaki@mozilla.com at Mon, 09 Jun 2014 21:49:01 +0000
Bug 938157 - Lightweight CFI/EXIDX unwinding library for SPS. r=n.nethercote, nfroyd, bgirard.
bd71f9da9d7d1188d96dd9b4178d2b1e02be979f: Bug 990230 - Fix heap use-after-free in memory reporter. r=n.nethercote
Dave Hylands <dhylands@mozilla.com> - Mon, 14 Apr 2014 08:48:35 -0700 - rev 196842
Push 3624 by asasaki@mozilla.com at Mon, 09 Jun 2014 21:49:01 +0000
Bug 990230 - Fix heap use-after-free in memory reporter. r=n.nethercote
e546255a136865d22b415d335561998e187e551c: Bug 969498 - [Qt] ICU usage conflict, ABORT: JS_SetICUMemoryFunctions failed. r=n.nethercote,nfroyd
Oleg Romashin <romaxa@gmail.com> - Mon, 10 Feb 2014 22:35:32 -0800 - rev 185233
Push 3503 by raliiev@mozilla.com at Mon, 28 Apr 2014 18:51:11 +0000
Bug 969498 - [Qt] ICU usage conflict, ABORT: JS_SetICUMemoryFunctions failed. r=n.nethercote,nfroyd
82ae28a2f162f15b16ff3d25deac223318deac87: Bug 916683 - SpiderMonkey: Delete unused code. r=n.nethercote
Dan Gohman <sunfish@google.com> - Tue, 17 Sep 2013 15:44:43 -0700 - rev 161467
Push 3066 by akeybl@mozilla.com at Mon, 09 Dec 2013 19:58:46 +0000
Bug 916683 - SpiderMonkey: Delete unused code. r=n.nethercote
90b8fac1eaa59a88b842d927597a10e81259db50: Bug 916683 - SpiderMonkey: Delete a function which has been obsolete for over 3 years. r=n.nethercote
Dan Gohman <sunfish@google.com> - Tue, 17 Sep 2013 15:44:43 -0700 - rev 161466
Push 3066 by akeybl@mozilla.com at Mon, 09 Dec 2013 19:58:46 +0000
Bug 916683 - SpiderMonkey: Delete a function which has been obsolete for over 3 years. r=n.nethercote
cb66dee18887aa1515f8e96cde0271fdd8ad8e8d: Bug 916683 - SpiderMonkey: Tidy up misc preprocessor stuff. r=n.nethercote
Dan Gohman <sunfish@google.com> - Tue, 17 Sep 2013 15:44:42 -0700 - rev 161465
Push 3066 by akeybl@mozilla.com at Mon, 09 Dec 2013 19:58:46 +0000
Bug 916683 - SpiderMonkey: Tidy up misc preprocessor stuff. r=n.nethercote
706ec68652b161e6e4c0084be8e2d1646a25f60e: Bug 841467 - Fix assert to properly handle requests to allocate 0 bytes. r=n.nethercote
Till Schneidereit <tschneidereit@gmail.com> - Fri, 15 Feb 2013 21:39:36 +0100 - rev 131934
Push 2323 by bbajaj@mozilla.com at Mon, 01 Apr 2013 19:47:02 +0000
Bug 841467 - Fix assert to properly handle requests to allocate 0 bytes. r=n.nethercote
c29fecf6595fad059ea048ccfa047b478e8f56e2: Bug 774021 - Remove extra ;. r=n.nethercote
Rafael Ávila de Espíndola <respindola@mozilla.com> - Sun, 15 Jul 2012 00:11:10 -0400 - rev 104140
Push 1316 by akeybl@mozilla.com at Mon, 27 Aug 2012 22:37:00 +0000
Bug 774021 - Remove extra ;. r=n.nethercote
0028bf2bbf0420d08220b8a5562921a49c1d260b: Bug 493431 - Add test to ensure video file with more audio than video plays and that video.currentTime only increases during playback. r=n/a
Chris Pearce <chris@pearce.org.nz> - Mon, 17 Aug 2009 09:32:24 +1200 - rev 31597
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Bug 493431 - Add test to ensure video file with more audio than video plays and that video.currentTime only increases during playback. r=n/a