summaryrefslogtreecommitdiffstats
path: root/base/tracked_objects.cc
Commit message (Collapse)AuthorAgeFilesLines
* [UMA] Add performance profile data to UMA uploads.isherman@chromium.org2012-04-251-15/+3
| | | | | | | | | | | | | BUG=103480 TEST=unit_test --gtest_filter=MetricsLogTest.* TBR=jar@chromium.org (Re-commit of [ https://chromiumcodereview.appspot.com/9702015/ ]) Review URL: http://codereview.chromium.org/10224010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134006 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 133773 - [UMA] Add performance profile data to UMA uploads.isherman@chromium.org2012-04-241-3/+15
| | | | | | | | | | | | | BUG=103480 TEST=unit_test --gtest_filter=MetricsLogTest.* Review URL: http://codereview.chromium.org/9702015 TBR=isherman@chromium.org Review URL: https://chromiumcodereview.appspot.com/10169039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133779 0039d316-1c4b-4281-b951-d872f2087c98
* [UMA] Add performance profile data to UMA uploads.isherman@chromium.org2012-04-241-15/+3
| | | | | | | | | | BUG=103480 TEST=unit_test --gtest_filter=MetricsLogTest.* Review URL: http://codereview.chromium.org/9702015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133773 0039d316-1c4b-4281-b951-d872f2087c98
* Add ipc_channel_nacl to the untrusted build and fix all compile/link errors.bbudge@chromium.org2012-04-231-0/+4
| | | | | | | | | ppapi_proxy_untrusted.gyp should now build with a single link error for main. BUG=116317 TEST=builds with a single link error for main(). Review URL: https://chromiumcodereview.appspot.com/10167024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133519 0039d316-1c4b-4281-b951-d872f2087c98
* [UMA] Use proper C++ objects to serialize tracked_objects across process ↵isherman@chromium.org2012-04-131-146/+132
| | | | | | | | | | | | | | | boundaries. See https://chromiumcodereview.appspot.com/9702014/ for the original code review. Uploading to a new issue due to an AppEngine error... BUG=103480 TEST=none (refactoring, no functional change expected) TBR=jam@chromium.org,jar@chromium.org,eroman@chromium.org,jhawkins@chromium.org,ajwong@chromium.org Review URL: http://codereview.chromium.org/10077001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132109 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Replace 'DurationInt' with int32, and always use 32-bit integers ↵isherman@chromium.org2012-03-241-18/+18
| | | | | | | | | | | | for tracking time. BUG=none TEST=none Review URL: http://codereview.chromium.org/9818004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128783 0039d316-1c4b-4281-b951-d872f2087c98
* simplify a few header includesvapier@chromium.org2012-03-191-1/+1
| | | | | | | | | | | | These files don't use message loops, so drop those includes and add the standard headers they actually need. BUG=None TEST=building libbase in ChromeOS Review URL: http://codereview.chromium.org/9705110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127545 0039d316-1c4b-4281-b951-d872f2087c98
* Support use of third party time function for about:profilerjar@chromium.org2012-02-151-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses TCMalloc to provide a time function, allowing us to see how much memory was allocated on a single thread during the running of a task. The alternate time function is put in place only when a specific environment variable is detected during TCMalloc startup. This change currently is activated only in Windows/Linux, as it is based on changes TCMalloc (not used on Mac). We also create an infrastructure for using any alternate timer, to replace the "wall clock time," on a per-thread basis, in the about:profiler infrastructure. That interface may be used on other platforms, including scenarios where we have a per-thread-CPU-time function to replace the wall-clock timer. In all cases, when this alternate timer is activated, we lose the ability to calculated queueing time. Queueing time is based on a time snapshot taken on a second thread, and hence is not comparable to the alternate timer (when the alternate timer is engaged). r=rtenneti BUG=103321 Review URL: https://chromiumcodereview.appspot.com/9212025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122180 0039d316-1c4b-4281-b951-d872f2087c98
* Propogate status setting for profiler to track parentsjar@chromium.org2012-02-101-14/+17
| | | | | | | | | | | | | | | | [Reland: https://src.chromium.org/viewvc/chrome?view=rev&revision=120789 with minor change to avoid race on status change.] This allows child processes to track ancestry, and report it to the browser process. Parent tracking is only turned on based on an environment variable. r=rtenneti Review URL: https://chromiumcodereview.appspot.com/9363007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121491 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 120789 - Propogate status setting for profiler to track parentsjar@chromium.org2012-02-071-17/+14
| | | | | | | | | | | | | | | | | | [There is a TSAN race report... so I'm reverting] This allows child processes to track ancestry, and report it to the browser process. Parent tracking is only turned on based on an environment variable. r=rtenneti Review URL: https://chromiumcodereview.appspot.com/9181002 TBR=jar@chromium.org Review URL: https://chromiumcodereview.appspot.com/9348028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120818 0039d316-1c4b-4281-b951-d872f2087c98
* Propogate status setting for profiler to track parentsjar@chromium.org2012-02-071-14/+17
| | | | | | | | | | | | | This allows child processes to track ancestry, and report it to the browser process. Parent tracking is only turned on based on an environment variable. r=rtenneti Review URL: https://chromiumcodereview.appspot.com/9181002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120789 0039d316-1c4b-4281-b951-d872f2087c98
* Make it possible to use ThreadLocalStorage::Slot as a static withoutthakis@chromium.org2012-01-301-1/+1
| | | | | | | | | | | | | | | | | introducing static initializers. Member variables can stay TLS::Slots and their behavior doesn't change. Static instances use TLS::StaticSlot instead. Kind of like http://codereview.chromium.org/8491043 but for TLS. BUG=none TEST=none TBR=agl Review URL: https://chromiumcodereview.appspot.com/9297010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119679 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove static storage for variables in an unnamed namespace.jhawkins@chromium.org2012-01-281-3/+5
| | | | | | | | | | BUG=none TEST=none R=binji Review URL: https://chromiumcodereview.appspot.com/9271061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119535 0039d316-1c4b-4281-b951-d872f2087c98
* Add a convenience typedef LazyInstance<T>::Leaky to avoid repeating T.fischman@chromium.org2012-01-231-3/+2
| | | | | | | | | | | | | Converted the first 20 or so hits for LeakyLazyInstanceTraits on codesearch to demonstrate the benefit at callsites. The real change is base/lazy_instance.h; everything else is example. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9192024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118754 0039d316-1c4b-4281-b951-d872f2087c98
* Detect child tasks born during a profiled tasksjar@chromium.org2011-12-141-40/+128
| | | | | | | r=rtenneti Review URL: http://codereview.chromium.org/8894022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114336 0039d316-1c4b-4281-b951-d872f2087c98
* Minor cleanup preparing for recording parent-child datajar@chromium.org2011-12-091-15/+11
| | | | | | | | | | | | | | I removed the branch-free macro. I really need to use a profiler to see if such changes are valuable. I cleaned up the placement of slots, putting the rare-to-use values together (so they'll probably get better handled by cache lines. r=rtenneti Review URL: http://codereview.chromium.org/8888004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113749 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the memcheck annotation in RecordDeath().rnk@chromium.org2011-12-051-1/+1
| | | | | | | | | | TBR=jar@chromium.org BUG=106326 TEST=valgrind bots go greener Review URL: http://codereview.chromium.org/8800008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112979 0039d316-1c4b-4281-b951-d872f2087c98
* Add memcheck annotation and remove suppression.rnk@chromium.org2011-12-041-0/+3
| | | | | | | | | | | | | | This is really re-landing 112937 and attempting to avoid a warning from the Linux builder. R=jar@chromium.org BUG=106326 TEST=needs to run on the CQ Review URL: http://codereview.chromium.org/8796006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112944 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 112937 - Suppress unitialized use of memory for random_number_ seedjar@chromium.org2011-12-041-3/+0
| | | | | | | | | | | | | | I'm going to TBR this, since it causes a bunch of redness on the tree, and is really a supression. tbr=rtenneti,mk bug=106326 Review URL: http://codereview.chromium.org/8792005 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8796005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112938 0039d316-1c4b-4281-b951-d872f2087c98
* Suppress unitialized use of memory for random_number_ seedjar@chromium.org2011-12-041-0/+3
| | | | | | | | | | | I'm going to TBR this, since it causes a bunch of redness on the tree, and is really a supression. tbr=rtenneti,mk bug=106326 Review URL: http://codereview.chromium.org/8792005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112937 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing tree (using smaller prime than 2^31)jar@chromium.org2011-12-041-1/+1
| | | | | | | TBR=rtenneti Review URL: http://codereview.chromium.org/8793003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112930 0039d316-1c4b-4281-b951-d872f2087c98
* Support incremental-max and sample in Profiler datajar@chromium.org2011-12-041-89/+155
| | | | | | | | | | | | | | | | | | | | | | I also did some cleaning and refactoring in tracked_objects. We had a lot of functionality that has migrated to JS, that we didn't need (a lot of acccessors that are supplanted by the ToValue() methods. I'm anticipating that we'll move to an asynhcronous collecting of data from the profiler, so that we can bounce around to various threads and more cleanly collect samples (without risking races during data snapshots). Several of the refactors are heading in that direction. r=rtenneti tbr=jam (for microscopic content change) BUG=106291,106293 Review URL: http://codereview.chromium.org/8775061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112928 0039d316-1c4b-4281-b951-d872f2087c98
* Remove bogus line and fix treejar@chromium.org2011-11-241-2/+0
| | | | | | | tbr=rtenneti Review URL: http://codereview.chromium.org/8680037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111453 0039d316-1c4b-4281-b951-d872f2087c98
* Check that thread contexts are cleaned up during profilingjar@chromium.org2011-11-241-14/+40
| | | | | | | | | | | | | | | | | There was a Thread Local Store regression, wherein thread cleanup notifcation was not sent to TLS users. This CL ensures that when this happens, that Chrome will crash. For now, I'm landed with a short-circuit (returns true all the time) in the test. I'll remove the TODO when we have XP properly supported. r=rtenneti BUG=103209 Review URL: http://codereview.chromium.org/8606001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111451 0039d316-1c4b-4281-b951-d872f2087c98
* Switch to a simple linked-list for worker thread pooljar@chromium.org2011-11-201-71/+25
| | | | | | | | | | | | The goal was to avoid alloc/free during the thread teardown callback, and this CL provides a very simple and clear implementation. r=rtenneti BUG=104696 Review URL: http://codereview.chromium.org/8597017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110856 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid any possibility of an Alloc during TLS thread teardownjar@chromium.org2011-11-181-20/+60
| | | | | | | | | | | | | | | GIven that TCMalloc might get its thread teardown notifgication ahead of the profiler, we need to be careful to not do an alloc in the teardown handler. If we did, we might bring TCMalloc back to life on this thread... and it might not get a second teardown notification. r=rtenneti BUG=104696 Review URL: http://codereview.chromium.org/8587031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110706 0039d316-1c4b-4281-b951-d872f2087c98
* Remove about:tracking.eroman@chromium.org2011-11-161-615/+0
| | | | | | | | | | | | It has been subsumed by about:profiler. I also added a button to about:profiler that matches the behavior of "about:tracking/reset" (nukes the tracked objects). That way there shouldn't be any functionality loss in deleting about:tracking. BUG=100992 Review URL: http://codereview.chromium.org/8568036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110252 0039d316-1c4b-4281-b951-d872f2087c98
* Handle null timer values when profiling sectionsjar@chromium.org2011-11-151-1/+3
| | | | | | | | | | | Null time values can appear if the profiler is not ACTIVE, and the Now() function returns a Null value (to avoid wasting time and calling the OS Time). r=rtenneti Review URL: http://codereview.chromium.org/8573017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110215 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce race potential for lazy testing initialization of profilerjar@chromium.org2011-11-151-8/+23
| | | | | | | | | | | | | | | | | | Initialization of the profiler is supposed to happen while single threaded. The tests however often skip affirmative initialization, and rely on lazy initialization. This CL tightens up that process, to reduce changes of races (even benign races) during testing. I also added a suppression for examination of the state, which is always a benign race. At initialization time we rely on a lock (now) to ensure race freedom (if we get a racy value of state). r=rtenneti Review URL: http://codereview.chromium.org/8570007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110180 0039d316-1c4b-4281-b951-d872f2087c98
* Allow linker initialization of lazy instancejoth@chromium.org2011-11-151-1/+1
| | | | | | | | | | | | | | Using the initializer list construct = {0} allows the object to be linker initialized. Modify the LazyInstance class design to make it a pod aggregate type that can be linker initialized this way. Also combines the instance and state members, in line with the Singleton<> class design. Introduces a new LAZY_INSTANCE_INITIALIZER macro specifically for using to init all lazy instances + modify all existing callsites to use it. (Old code would no longer compile) BUG=94925 TEST=existing tests pass. http://build.chromium.org/f/chromium/perf/linux-release/sizes/report.html?history=150&header=chrome-si&graph=chrome-si&rev=-1 should step downward. TBR=jam@chromium.org,rvargas@chromium.org,darin@chromium.org,ben@chromium.org,apatrick@chromium.org,akalin@chromium.org Review URL: http://codereview.chromium.org/8491043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110076 0039d316-1c4b-4281-b951-d872f2087c98
* Use leaky lazy instance for master lock in profilerjar@chromium.org2011-11-141-19/+15
| | | | | | | | | | | The master lock is very rarely used, so we can afford to use a lazy instance of this lock. r=rtenneti BUG=104167 Review URL: http://codereview.chromium.org/8567007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109947 0039d316-1c4b-4281-b951-d872f2087c98
* Adjust interfaces to indicate when tracking is in progressjar@chromium.org2011-11-141-0/+10
| | | | | | | | | | | | | | | This should have no change whatever in function, but simply changes the names of calls for tracking time so that the ThreadData can know if a new trackig has started or ended. This will be helpful in (a future CL) measuring when the thread is doing something that is not tracked at all (e.g., processing UI events, etc.) r=rtenneti Review URL: http://codereview.chromium.org/8548005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109846 0039d316-1c4b-4281-b951-d872f2087c98
* Switch to using an intergral type for durations inside profilerjar@chromium.org2011-11-111-29/+29
| | | | | | | | | | | | | Transition from internal used of "class Duration" (which is kindred of base::TimeDelta) to using an integral type. This is in preparation for handling durations that are not time based, such as memmory allocation units. r=rtenneti BUG=103321 Review URL: http://codereview.chromium.org/8502001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109720 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Revert 108752 - Support tracking of IPC messages as tasks in profilerjar@chromium.org2011-11-081-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | This is a relanding of all the cleanup found in the original CL, without the hooks to actually monitor the IPC calls. I'm trying to find out what caused the ASAN bot failures by landing piecemeal (per discussion with Joi). The original CL was: Support tracking of IPC messages as tasks in profiler Also started to do more cleanup, including creating a base/profiler directory, and moving parts of the over-sized tracked_objects.* into that directory. r=rtenneti Review URL: http://codereview.chromium.org/8480014 But this CL is: TBR=joi Review URL: http://codereview.chromium.org/8499022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109040 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 108752 - Support tracking of IPC messages as tasks in profilerjoi@chromium.org2011-11-081-25/+0
| | | | | | | | | | | | | | Also started to do more cleanup, including creating a base/profiler directory, and moving parts of the over-sized tracked_objects.* into that directory. r=rtenneti Review URL: http://codereview.chromium.org/8480014 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8496008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109004 0039d316-1c4b-4281-b951-d872f2087c98
* Support tracking of IPC messages as tasks in profilerjar@chromium.org2011-11-051-0/+25
| | | | | | | | | | | Also started to do more cleanup, including creating a base/profiler directory, and moving parts of the over-sized tracked_objects.* into that directory. r=rtenneti Review URL: http://codereview.chromium.org/8480014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108752 0039d316-1c4b-4281-b951-d872f2087c98
* Support max of profiled times as well as sum and averagejar@chromium.org2011-11-041-30/+93
| | | | | | | r=rtenneti Review URL: http://codereview.chromium.org/8438062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108593 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 108352 - Try to see if disabling ALL tracking helps treejar@chromium.org2011-11-031-1/+1
| | | | | | | | | | r=viettrungluu Review URL: http://codereview.chromium.org/8351085 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8423072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108401 0039d316-1c4b-4281-b951-d872f2087c98
* Try to see if disabling ALL tracking helps treejar@chromium.org2011-11-021-1/+1
| | | | | | | r=viettrungluu Review URL: http://codereview.chromium.org/8351085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108352 0039d316-1c4b-4281-b951-d872f2087c98
* Enable default object tracking no Macjar@chromium.org2011-11-011-5/+0
| | | | | | | | | | | | | | | | | | We had trouble with base_unittests before, so we ifdef'ed out the larger landing. This tiny switch CL will turn it on for the Mac, but can be quickly reverted if there is a problem. Scott Hess was able to debug and identify the cause of the problem (yeah Scott!!!!). I think the code we landed corrects for the issue he identified, and this should prove it (or get reverted trying). r=rtenneti,shess bug=101856 Review URL: http://codereview.chromium.org/8387059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108072 0039d316-1c4b-4281-b951-d872f2087c98
* Enable tracking of objects by defaultjar@chromium.org2011-10-311-143/+239
| | | | | | | | | | | | | | | | | | | This is a reland of accumulated patches including CLs 8414036, 8425010, 8425013, 8424013. It fully enables tracking of objects, as seen in about:tracking in teh release build. The problem this had in its initaial landing centered on Mac instability in base_unittest. We were encountering crash on exit of the tests, with a stack dump involving pthreads. r=rtenneti BUG=101856 Review URL: http://codereview.chromium.org/8429009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108026 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107895 - Fully enable about:tracking by defaultjoth@chromium.org2011-10-311-177/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a re-land of: http://codereview.chromium.org/8391019/ Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107793 Original landing had trouble with message_loop_x.h, due to header include ordering. I pulled out the structure that was really needed by tracked_objects.h into a new file tracked_info.*. This allows tracked_objects to inlude this tracked_info, but not have to include the message_loop.h totality. I also removed a DCHECK that that was triggering on a test, and added yet one more file (browser_main.cc) where I removed a #ifdef for TRACKING_ALL_OBJECTS. The changes were minor, and I'm hoping to get clear perf runs with tihs landing, so I'm going to TBR it and reland early in the morning. Comments from original landing: Support is now controlled by the flag: --enable-tracking and the default is always on. To turn it off, use: --enable-tracking=0 All profiler code is compiled now in release and official builds (in addition to debug, where it was already active), but most entry points can be disabled (turned into no-ops) by a single const bool setting atop tracked_objects.cc (in case folks want to revert the perf-impact of this change). Transition to faster Now() service on Windows for the profiler use only. The TimeTicks::Now() function on Window uses locking to get a 64 bit time value. This CL transitions times used for profiling to more directly use a 32 bit Time interface, which is actually what drives the 64 bit TimeTicks. By using the smaller value, we avoid the need for locks, or even atomic operations for the most part in the tracking system. On linux, we just down-sample the standard TimeTicks to 32 bits for consistency (clean ability to snapshot asyncronously without atomics... but I should verify that such is helpful to performance). I've also put in yet more cleanup and refactoring. tbr=rtenneti bug=101856 Review URL: http://codereview.chromium.org/8414036 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8430004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107961 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107939 - Pile of nits for tracked object enablementjoth@chromium.org2011-10-311-36/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Re-land of Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107921 with supressions for induced (and planned) leaks) PLUS Removed one line of defensive coding where I set(NULL) the TLS slote at thread teardown. We're seeing strange failures on the base unittests, and they may be related to this. ] Be extra carful about handling races in access to status_. This will avoid generating a delta between a null time and a real time, when status is changing in/around the run of a task. This won't help with the benign race for checking status_, but it may help with unit test tsan complaints. Leak data aggressively, rather than cleaning up, to prevent any chance of a data access race between tracked object testing (which need a near-virgin global state, and hence must start by cleaning it up), and other tests, which may have lingering threaded actions, that still access some previously created task tracking data. Provide more options for flags to enable/disable tracking. These options might become useful if we changed the default to not do tracking. Allow for HTML generation even if the tracking has changed to being disabled. This is especially useful for looking at the tracked instances that were monitored after turning tracking on by default, but before the command line deactiated tracking. tbr=rtenneti bug=102327 Review URL: http://codereview.chromium.org/8425010 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8430003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107960 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107940 - Remove DCHECK that tickles TLS during shutdownjoth@chromium.org2011-10-311-0/+1
| | | | | | | | | | | | Repair busted tree. TBR=rtenneti Review URL: http://codereview.chromium.org/8425013 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8430002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107959 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107944 - Avoid all unnecessary calls to TLS during thread teardownjoth@chromium.org2011-10-311-0/+1
| | | | | | | | | | | | | | | | | | Mac base_unittests is still flaky.... Pthread is still sometimes crashing Mac on shutdown. I'm suspicious that my handlers are tickling it. This removes a DCHECK(), which checked status in TLS during the teardown. TBR=rtenneti Review URL: http://codereview.chromium.org/8424013 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8431003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107958 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid all unnecessary calls to TLS during thread teardownjar@chromium.org2011-10-311-1/+0
| | | | | | | | | | | | | | | Mac base_unittests is still flaky.... Pthread is still sometimes crashing Mac on shutdown. I'm suspicious that my handlers are tickling it. This removes a DCHECK(), which checked status in TLS during the teardown. TBR=rtenneti Review URL: http://codereview.chromium.org/8424013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107944 0039d316-1c4b-4281-b951-d872f2087c98
* Remove DCHECK that tickles TLS during shutdownjar@chromium.org2011-10-311-1/+0
| | | | | | | | | Repair busted tree. TBR=rtenneti Review URL: http://codereview.chromium.org/8425013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107940 0039d316-1c4b-4281-b951-d872f2087c98
* Pile of nits for tracked object enablementjar@chromium.org2011-10-311-13/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Re-land of Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107921 with supressions for induced (and planned) leaks) PLUS Removed one line of defensive coding where I set(NULL) the TLS slote at thread teardown. We're seeing strange failures on the base unittests, and they may be related to this. ] Be extra carful about handling races in access to status_. This will avoid generating a delta between a null time and a real time, when status is changing in/around the run of a task. This won't help with the benign race for checking status_, but it may help with unit test tsan complaints. Leak data aggressively, rather than cleaning up, to prevent any chance of a data access race between tracked object testing (which need a near-virgin global state, and hence must start by cleaning it up), and other tests, which may have lingering threaded actions, that still access some previously created task tracking data. Provide more options for flags to enable/disable tracking. These options might become useful if we changed the default to not do tracking. Allow for HTML generation even if the tracking has changed to being disabled. This is especially useful for looking at the tracked instances that were monitored after turning tracking on by default, but before the command line deactiated tracking. tbr=rtenneti bug=102327 Review URL: http://codereview.chromium.org/8425010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107939 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107928 - Pile of nits for tracked object enablementjar@chromium.org2011-10-311-36/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Re-land of Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107921 with supressions for induced (and planned) leaks) ] Be extra carful about handling races in access to status_. This will avoid generating a delta between a null time and a real time, when status is changing in/around the run of a task. This won't help with the benign race for checking status_, but it may help with unit test tsan complaints. Leak data aggressively, rather than cleaning up, to prevent any chance of a data access race between tracked object testing (which need a near-virgin global state, and hence must start by cleaning it up), and other tests, which may have lingering threaded actions, that still access some previously created task tracking data. Provide more options for flags to enable/disable tracking. These options might become useful if we changed the default to not do tracking. Allow for HTML generation even if the tracking has changed to being disabled. This is especially useful for looking at the tracked instances that were monitored after turning tracking on by default, but before the command line deactiated tracking. tbr=rtenneti bug=102327 Review URL: http://codereview.chromium.org/8414053 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8422004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107931 0039d316-1c4b-4281-b951-d872f2087c98
* Pile of nits for tracked object enablementjar@chromium.org2011-10-311-12/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Re-land of Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107921 with supressions for induced (and planned) leaks) ] Be extra carful about handling races in access to status_. This will avoid generating a delta between a null time and a real time, when status is changing in/around the run of a task. This won't help with the benign race for checking status_, but it may help with unit test tsan complaints. Leak data aggressively, rather than cleaning up, to prevent any chance of a data access race between tracked object testing (which need a near-virgin global state, and hence must start by cleaning it up), and other tests, which may have lingering threaded actions, that still access some previously created task tracking data. Provide more options for flags to enable/disable tracking. These options might become useful if we changed the default to not do tracking. Allow for HTML generation even if the tracking has changed to being disabled. This is especially useful for looking at the tracked instances that were monitored after turning tracking on by default, but before the command line deactiated tracking. tbr=rtenneti bug=102327 Review URL: http://codereview.chromium.org/8414053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107928 0039d316-1c4b-4281-b951-d872f2087c98