| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TSAN error.
Also fix a data race with ThreadData::status_. TSan doesn't see this race explicitly, but it contributes to a race with the use of StaticSlot in ThreadData::tls_index_.
BUG=268941
TESTED=Ran base_unittests.
TSAN errors before: lots, oodles, slathers, acres
After: Zip, zilch, nadda
Review URL: https://codereview.chromium.org/1222123002
Cr-Commit-Position: refs/heads/master@{#339219}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given that TLS slot can't fail to initialize, remove bool return values
from initialization functions that actually can't fail.
Based off of vadimt@'s CL here:
https://codereview.chromium.org/1124493002/
BUG=456354
Review URL: https://codereview.chromium.org/1128653002
Cr-Commit-Position: refs/heads/master@{#328774}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #1 id:1 of https://codereview.chromium.org/1118753003/)
Reason for revert:
Since the crash reports started before the original CL landed, reverting the revert.
Original issue's description:
> Revert of Inlining DeathData accessors, per earlier CR's comment (patchset #1 id:1 of https://codereview.chromium.org/1113463003/)
>
> Reason for revert:
> Suspecting this CL caused crashes (https://code.google.com/p/chromium/issues/detail?id=483255).
>
> Original issue's description:
> > Inlining DeathData accessors, per earlier CR's comment.
> >
> > BUG=456354
> >
> > Committed: https://crrev.com/9e0a3c19c221db002fdd5512b0d56dde675e005b
> > Cr-Commit-Position: refs/heads/master@{#327350}
>
> TBR=asvitkine@google.com,isherman@chromium.org,asvitkine@chromium.org,cpu@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=456354
>
> Committed: https://crrev.com/f02f0cc4ee8f12e53cd57a97bd2d6ef4c3af87ff
> Cr-Commit-Position: refs/heads/master@{#327798}
TBR=asvitkine@google.com,isherman@chromium.org,asvitkine@chromium.org,cpu@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=456354
Review URL: https://codereview.chromium.org/1129073002
Cr-Commit-Position: refs/heads/master@{#328625}
|
|
|
|
|
|
|
|
| |
BUG=456354
Review URL: https://codereview.chromium.org/1104053004
Cr-Commit-Position: refs/heads/master@{#327956}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#1 id:1 of https://codereview.chromium.org/1113463003/)
Reason for revert:
Suspecting this CL caused crashes (https://code.google.com/p/chromium/issues/detail?id=483255).
Original issue's description:
> Inlining DeathData accessors, per earlier CR's comment.
>
> BUG=456354
>
> Committed: https://crrev.com/9e0a3c19c221db002fdd5512b0d56dde675e005b
> Cr-Commit-Position: refs/heads/master@{#327350}
TBR=asvitkine@google.com,isherman@chromium.org,asvitkine@chromium.org,cpu@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=456354
Review URL: https://codereview.chromium.org/1118753003
Cr-Commit-Position: refs/heads/master@{#327798}
|
|
|
|
|
|
|
|
| |
BUG=456354
Review URL: https://codereview.chromium.org/1113463003
Cr-Commit-Position: refs/heads/master@{#327350}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
concludes the client-side “phased profiling” work.
I’m removing TODO items, and the DIFFS introduced by this should remind the reviewers that there are open questions that they wanted to re-raise, assuming the the CL doesn’t make it clear that the way it’s implemented is OK.
If there are still concerns, we should agree on one important thing before we resume the discussions: phase change delivery chain doesn’t go through metrics provider. It starts at the event source (FirstWebContentsProfiler), then goes to TrackingSynchronizer, then goes to base/. Once we agree on the design of this chain, it will make sense to go to more detailed discussions and open questions.
BUG=456354
Review URL: https://codereview.chromium.org/1021053003
Cr-Commit-Position: refs/heads/master@{#327143}
|
|
|
|
|
|
|
|
| |
BUG=456354
Review URL: https://codereview.chromium.org/1068933003
Cr-Commit-Position: refs/heads/master@{#324350}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TrackingSynchronizer can send a "phase completed" message to all processes. Their ThreadData's make a snapshot of task deaths and store it in a static map, associating with the number of the completed phase. They also clean the death data.
When requested to return a tasks snapshot, ThreadData returns that saved map, adding a snapshot of current task deaths as a separate "current" phase.
The rest of code was transformed to work with the map of snapshots instead of a single snapshot.
BUG=456354
Review URL: https://codereview.chromium.org/985773002
Cr-Commit-Position: refs/heads/master@{#323151}
|
|
|
|
|
|
|
|
|
|
| |
Removing [Reset tracking data] was approved by jar@. It was never fully implemented (only for the browser process) and is superseded by taking and comparing snapshots in chrome://profiler tab.
BUG=456354
Review URL: https://codereview.chromium.org/980333004
Cr-Commit-Position: refs/heads/master@{#319770}
|
|
|
|
|
|
|
|
| |
BUG=456354
Review URL: https://codereview.chromium.org/987593002
Cr-Commit-Position: refs/heads/master@{#319454}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that if the header is not included, and a DCHECK is guarded
by this check, that the file will fail to compile instead of silently
compiling the DCHECK out.
For example:
#if DCHECK_IS_ON
DCHECK(SomeThing());
#endif
This example would be compiled out if DCHECK_IS_ON was not defined due
to not including the logging.h header.
Instead, this will fail to compile:
#if DCHECK_IS_ON()
DCHECK(SomeThing());
#endif
R=thakis@chromium.org
Review URL: https://codereview.chromium.org/842523002
Cr-Commit-Position: refs/heads/master@{#310626}
|
|
|
|
|
|
|
|
|
|
|
| |
Prefix all CommandLine usage in the base/ directory with the
base:: namespace.
BUG=422426
Review URL: https://codereview.chromium.org/645133002
Cr-Commit-Position: refs/heads/master@{#305626}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
defined behavior.
The problem has been spotted by UBSan in base_unittests:
[ RUN ] FileProxyTest.SetLength_Expand
../../base/tracked_objects.cc:457:18: runtime error: signed integer overflow: 1517486279 + 2147483647 cannot be represented in type 'int'
[ OK ] FileProxyTest.SetLength_Expand (2 ms)
R=jar@chromium.org
TBR=darin@chromium.org
BUG=none
Review URL: https://codereview.chromium.org/715223002
Cr-Commit-Position: refs/heads/master@{#303893}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Browser process, if profiler timing field trial is "Enabled", enable profiler timing.
This is necessary to measure the performance impact of enabling profiler timing on Android, and, perhaps, rolling out profiler timing enabling afterwards.
Profiler timing is currently disabled on Android because of performance concerns, but the impact on the standard perf metricts is not yet known, hence this CL.
BUG=315070
Review URL: https://codereview.chromium.org/693103005
Cr-Commit-Position: refs/heads/master@{#303100}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and Canary channel.
This introduces TrackingProfile class that is equivalent to ScopedProfile what tracking is enabled and does nothing otherwise.
There is an idea to remove the single-parametered ScopedProfile constructor, but for this CL, I’m leaving it. Otherwise, I’d have to replace ~100 ScopedProfile instantiations throughout the code with TrackingProfile, and the substantial changes would be lost in these changes. I’ll do this in a separate CL. I replaced one ScopedProfile just to make sure this will compile.
BUG=401560
TBR=asanka@chromium.org
Review URL: https://codereview.chromium.org/663093005
Cr-Commit-Position: refs/heads/master@{#301695}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
applying for know cases of pollution.
See the bug.
The CL introduces TaskStopwatch that has to be used to measure run time for tasks. It takes care of double-counting
run time in the nested-tasks case by subtracting run time of nested tasks from their parents. TaskStopwatch can be
also used for subtracting other nested intervals, such as the time while a nested message pump runs. ThreadData::TallyADeath
now takes a stopwatch parameter instead of start_time and end_time. This helps avoid mistakes when the interval passed up to
the parent for exclusion is different from the interval for the current task duration.
BUG=401560
Review URL: https://codereview.chromium.org/445413003
Cr-Commit-Position: refs/heads/master@{#294865}
|
|
|
|
|
|
|
|
|
|
| |
BUG=346392
TEST=none
R=thakis@chromium.org
Review URL: https://codereview.chromium.org/197273004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257153 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using atomics with NoBarrier doesn't change the performance, and prevent
tsan warnings.
R=glider@chromium.org,mark@chromium.org
BUG=327722
Review URL: https://codereview.chromium.org/111873003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240385 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Android, on a arm CPU, TimeTicks::Now() is taking 900ns (20 times
what it takes on a desktop x86 CPU). The bigger user of TimeTicks::Now()
is tracked_objects::TrackedTime, and this impacts the overall
performance of Chrome on this platform.
This CL adds compile line flags that allows to disable
tracked_objects::TrackedTime. It also disable
tracked_objects::TrackedTime by default on Android.
BUG=315070
Review URL: https://codereview.chromium.org/99343002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240092 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are some of the suggestions from running include-what-you-use[1]
on the base target.
[1] https://code.google.com/p/include-what-you-use/
BUG=259043
Review URL: https://chromiumcodereview.appspot.com/23540009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221067 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also updates any stragglers that I missed, fixes mistakes I may have made,
and deletes the forwarding headers.
After this CL, the proces_util.h project is complete.
BUG=242290
TBR=brettw@chromium.org
Review URL: https://codereview.chromium.org/20265004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213702 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
These trace can be useful for examining the status of message loop
queues when debugging some performance issues.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/18083015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=247723
TEST=none
TBR=ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16320009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205284 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove several HeapChecker suppressions in favor of one annotation.
BUG=136936
R=jar@chromium.org
CC=glider@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16387012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205190 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
in comments.
R=jar@chromium.org
BUG=none
TEST=none
Review URL: https://codereview.chromium.org/15241002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201114 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=178409
R=mark@chromium.org,darin@chromium.org,glider@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12951003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189406 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
which wasn't working due to compiler optimizations.
Fix for a crash in Canary on Mac.
R=jar@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12378002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185150 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TEST=base_unittests
R=willchan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11293086
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165904 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some long lived browsers (and more likely, run-away and hyperactive
tasks) can run more times than can be tallied in a mere int (2^31
times). We use the count as a modulus to take a uniform sample of
other profiled activities. If the task runs enough times, this value
turns negative, and eventually becomes zero, which would cause an
arithmetic exception (divide by zero when doing modulo operation). We
now clamp the value at 2^31 - 1, which will make clear what has
happened when users visit about:profiler (a task has run a LOT), and
we then use this clamped value (instead of the real count) to be very
infrequent about taking a replacement sample. This sampling should be
"good enough for government work," and should not impact enough folks
to have any effect on our profiling stats.
r=isherman
BUG=138961
Review URL: https://chromiumcodereview.appspot.com/10826018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148628 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|