etienneb@chromium.org [Fri, 24 May 2013 20:49:19 +0000 (20:49 +0000)]
Add invalid a missing statement in LivenessAnalysis example.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9742045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1541
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Fri, 24 May 2013 19:51:12 +0000 (19:51 +0000)]
Dump symbol callers and callees correctly.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9748043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1540
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 24 May 2013 17:31:10 +0000 (17:31 +0000)]
Fix some coverage issues with the LivenessAnalysis unittests.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9710043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1539
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Thu, 23 May 2013 19:49:50 +0000 (19:49 +0000)]
Enable the instrumentation of the JMP and CALL instructions.
I've run some benchmark on this and the results are the opposite of what I was expecting... I was sure that this'll introduce a slowdown but I see a speed up...
new:
609.44runs/s : http://dromaeo.com/?id=195653
612.06runs/s : http://dromaeo.com/?id=195654
601.18runs/s : http://dromaeo.com/?id=195655
622.20runs/s : http://dromaeo.com/?id=195659
Avg: 611.22
master:
581.27runs/s : http://dromaeo.com/?id=195656
582.38runs/s : http://dromaeo.com/?id=195657
590.78runs/s : http://dromaeo.com/?id=195658
Avg: 584.81
I've run the benchmark several times, in different order etc and those number are consistents... I'll try to understand why :)
With this the dll size grow from 66,055,680 bytes to 66,824,192 bytes (1.16%).
R=etienneb@chromium.org, rogerm@chromium.org, siggi@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9688044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1538
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 23 May 2013 17:35:30 +0000 (17:35 +0000)]
Validate instruction decoding in Liveness Unittests
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9678044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1537
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Thu, 23 May 2013 17:20:45 +0000 (17:20 +0000)]
Make export names a little more unique and consistent.
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9685044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1536
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 23 May 2013 15:55:08 +0000 (15:55 +0000)]
Fix some coding style nits in ASAN.
R=rogerm@chromium.org, sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9656044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1535
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 23 May 2013 14:59:15 +0000 (14:59 +0000)]
Avoid running liveness analysis when not activated.
R=rogerm@chromium.org, sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9691043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1534
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Thu, 23 May 2013 14:53:13 +0000 (14:53 +0000)]
Poison the shadow memory.
BUG=
R=etienneb@chromium.org, rogerm@chromium.org, siggi@chromium.org
Review URL: https://codereview.appspot.com/9679043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1533
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 23 May 2013 14:01:34 +0000 (14:01 +0000)]
Exclude internal/ from coverage stats
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9652043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1532
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 22 May 2013 21:41:10 +0000 (21:41 +0000)]
Add an unittest to ensure that the shadow memory is unpoisoned correctly.
BUG=
R=siggi@chromium.org
Review URL: https://codereview.appspot.com/9658044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1531
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Wed, 22 May 2013 20:37:29 +0000 (20:37 +0000)]
Profiler: Support dynamic symbol callees.
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9655043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1530
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 22 May 2013 19:28:10 +0000 (19:28 +0000)]
2 Moar optimizations to SyzyASan ! (Slow path only)
1) We can use the fact that the shadow non accessible byte mask is a signed negative value to remove one instruction from the slow path.
2) In the slow path we can use DH instead of EAX. This save a push/pop eax.
This bring a 2% perf improvement...
This CL:
609.10runs/s : http://dromaeo.com/?id=195572
607.13runs/s : http://dromaeo.com/?id=195573
605.65runs/s : http://dromaeo.com/?id=195574
Avg: 607.29
master@r1527:
602.75runs/s : http://dromaeo.com/?id=195575
586.02runs/s : http://dromaeo.com/?id=195578
597.39runs/s : http://dromaeo.com/?id=195577
Avg: 595.39
R=siggi@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9666043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1529
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 22 May 2013 17:40:11 +0000 (17:40 +0000)]
Checking in version 1527 release binaries.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9657043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1528
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Wed, 22 May 2013 15:41:25 +0000 (15:41 +0000)]
Add more instruction definitions to liveness analysis.
This bring less than .5% of instructions coverage in chrome.
R=rogerm@chromium.org, sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9203044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1527
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 22 May 2013 15:20:47 +0000 (15:20 +0000)]
Update the release notes and bump the version number.
BUG=
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9642044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1526
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 22 May 2013 15:12:41 +0000 (15:12 +0000)]
Update IID for logger interface.
TBR= siggi@chromium.org
Review URL: https://codereview.appspot.com/9650044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1525
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 22 May 2013 14:34:31 +0000 (14:34 +0000)]
Update asan rtl for minidump generation.
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9609044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1524
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 21 May 2013 19:23:18 +0000 (19:23 +0000)]
Add mini-dump generation to the logger.
R=etienneb@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9352045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1523
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Tue, 21 May 2013 13:58:36 +0000 (13:58 +0000)]
Add a variant of the asan hooks that don't save the flags and call them when possible.
This is hidden behind a flag that is disabled by default
BUG=
R=rogerm@chromium.org, siggi@chromium.org
Review URL: https://codereview.appspot.com/9099045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1522
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 17 May 2013 22:39:12 +0000 (22:39 +0000)]
Small change for C++ readability.
Original CL: https://codereview.appspot.com/8577044/
R=dominich@google.com
BUG=
Review URL: https://codereview.appspot.com/9385043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1521
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Thu, 16 May 2013 23:21:16 +0000 (23:21 +0000)]
Reduce the memory overhead per block and add the TIDs to the header.
Instead of having a big redzone at the beginning and at the end of each blocks (at least 64 bytes in total) we now have a static overhead of 36 bytes split in two redzones, one in front of the block and the other one after it. The new layout of a memory access is as follow:
L L L L X X ... X X R R R R P
L: 4 byte of header redzone.
X: User allocation
R: 4 byte of trailer redzone.
P: Padding to be 8-byte aligned
The header and trailer are composed as follow:
- Magic number 24 bits
- State 8 bits(1)
- Allocation stack trace 32 bits
- Block size 32 bits
- Alloc TID 32 bits
Total: 128 bits
Trailer
- Timestamp 64 bits
- Free stack trace 32 bits
- Free TID 32 bits
- Next free block 32 bits
Total: 160 bits
(1) We could use less bits here but as we want the redzone to be 8-byte aligned we've room for those extra bits.
We see a 2x improvement on the memory usage (overhead ratio = allocated bytes / requested bytes):
Trunk@r1510:
Browser:
Overhead ratio: 1.666697
Renderer:
Overhead ratio: 1.293409
New Block header version:
Browser:
Overhead ratio: 1.329258
Renderer:
Overhead ratio: 1.144337
Here's 3 runs of the dromaeo benchmark to measure the impact on the performances (this CL / trunk@r1510):
585.38 / 593.95
598.04 / 579.53
585.27 / 574.62
Avg of the 3 runs : 589.563 / 582.7
Those results are similar, so this doesn't seems to introduce a slowdown (we even see a 1-2% improvement but this can due to the imprecision of dromaeo...)
BUG=
R=siggi@chromium.org
Review URL: https://codereview.appspot.com/9400043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1520
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 16 May 2013 14:21:50 +0000 (14:21 +0000)]
Fix invalid post-order flatten in liveness analysis.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9232047
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1519
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Wed, 15 May 2013 15:17:49 +0000 (15:17 +0000)]
Asan Runtime: No looping under quarantine lock.
This should reduce contention on the quarantine lock.
As-is it may be held over arbitrarily many shadow and HeapFree operations when large allocations are freed, and the quarantine is at max.
For single-threaded code, this has negligible performance effects, here's three Dromaeo DOM runs:
Before: 538.80 + 550.15 + 535.19, avg: 541.38
After: 533.67 + 551.89 + 540.97, avg: 542.18
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9421044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1515
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 14 May 2013 20:53:26 +0000 (20:53 +0000)]
Add trace common unittests to build_all
R= etienneb@chromium.org, sebmarchand@chromium.org
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9255045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1514
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Tue, 14 May 2013 20:01:33 +0000 (20:01 +0000)]
Rollback of this CL: https://codereview.appspot.com/9384043/
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9412043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1513
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 13 May 2013 21:33:35 +0000 (21:33 +0000)]
Fix invalid cast in asan instrumentation.
R=rogerm@chromium.org, sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9282044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1510
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 13 May 2013 18:59:33 +0000 (18:59 +0000)]
Add compiland path information to block graph.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9384043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1509
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 13 May 2013 13:37:16 +0000 (13:37 +0000)]
Fix coding style issues detected by CPPCheck.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9289045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1508
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 19:53:19 +0000 (19:53 +0000)]
Fix missing variable initialisation in service unittest.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9347043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1506
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 19:42:30 +0000 (19:42 +0000)]
Fix invalid cast of false to pointer.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9144047
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1505
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 19:26:48 +0000 (19:26 +0000)]
Fix invalid use of printf and StringPiece.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9250045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1504
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 10 May 2013 17:06:24 +0000 (17:06 +0000)]
Add more aggressive optimization settings to our official builds.
This disables buffer security checks, enables optimization for speed, and enables link-time code generation. This improves performance of ASAN on the Dromaeo benchmark by about 4%:
Old Slowdown, New Slowdown
3.74, 3.66
3.31, 3.06
2.93, 2.86
2.56, 2.50
BUG=
R=rogerm@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9187045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1503
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 16:57:37 +0000 (16:57 +0000)]
Fix missing expect in PE file parser unittests.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9101046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1502
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 15:58:34 +0000 (15:58 +0000)]
Use lahf/sahf instead of pushfd/popfd in BasicBlockCount agent.
This give a 2x speedup on an instrumented image.
Dromaeo DOM
No instrumention
(run/s)
935.94
451.68
16198.74
434.02
Using pushfd/popfd
(Release)
21.57
14.76
508.90
17.01
Using pushfd/popfd
(Release / Official Build [-DCHECK])
(run/s)
34.79
23.75
778.90
26.90
Using lahf/sahf
(Release / Official Build [-DCHECK])
71.63
42.40
1484.45
51.37
R=rogerm@chromium.org, sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9301046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1501
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 10 May 2013 15:24:53 +0000 (15:24 +0000)]
Fix bugs found by PVS Studio linter.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9268045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1500
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 10 May 2013 14:19:45 +0000 (14:19 +0000)]
Fix a StringPiece bug in JSONFileWriter.
BUG=
R=siggi@chromium.org
Review URL: https://codereview.appspot.com/9232044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1499
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 10 May 2013 14:02:04 +0000 (14:02 +0000)]
Find a printf bug found by a linter.
This is potentially unsafe as StringPiece objects aren't guaranteed to be NULL terminated. The reinterpret cast to 'char*' is only coincidentally safe, but incorrect.
BUG=
R=etienneb@chromium.org
Review URL: https://codereview.appspot.com/9273047
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1498
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 10 May 2013 10:06:17 +0000 (10:06 +0000)]
Fix for new []/delete bug found by DrMemory.
BUG=
TBR=etienneb@chromium.org
Review URL: https://codereview.appspot.com/9342043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1497
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Thu, 9 May 2013 20:01:15 +0000 (20:01 +0000)]
Profiler: Add test coverage for moving dynamic symbols, fix bugs that fell out.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9328043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1496
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Thu, 9 May 2013 16:32:00 +0000 (16:32 +0000)]
Refactor Logger to use trace::common::Service.
BUG=
R=rogerm@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9024048
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1495
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 9 May 2013 13:58:59 +0000 (13:58 +0000)]
Checking in version 1492 release binaries.
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9115045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1494
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Thu, 9 May 2013 13:10:51 +0000 (13:10 +0000)]
Adds exports to profile_client.dll to support pushing dynamic symbol information at it. Extends the invocation data format to store symbols for caller and callee, and implements support for resolving callers to symbols.
Support for callee will follow in a separate CL. This will involve another export to avoid a redundant lookup for non-dynamic callees.
R=chrisha@chromium.org, rogerm@chromium.org
Review URL: https://codereview.appspot.com/9120043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1493
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 9 May 2013 05:59:34 +0000 (05:59 +0000)]
Bump version to 0.2.20.0
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9033051
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1492
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 9 May 2013 05:39:51 +0000 (05:39 +0000)]
Enable fuzzing in the reliability bot.
R=etienneb@chromium.org
Review URL: https://codereview.appspot.com/9188045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1491
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Thu, 9 May 2013 02:58:27 +0000 (02:58 +0000)]
Cut shadow size in half.
As Chrome is not /LARGEADDRESSAWARE, we can cut the size of the shadow memory in half, which will increase Chrome's address space by 256Mb, and incidentally also drop 256Mb from it's "memory usage".
BUG=
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9309043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1490
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 8 May 2013 19:32:34 +0000 (19:32 +0000)]
Move fuzzing transform from instrumenter to relinker.
- Moves the fuzzing transform from instrument_lib to block_graph.
- Fixes the fallout in the unit-tests.
- Removes the --fuzzing mode from the instrumenter.
- Adds --fuzz as a generally applicably option to the relinker.
R=chrisha@chromium.org, etienneb@chromium.org
Review URL: https://codereview.appspot.com/9172044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1489
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Wed, 8 May 2013 14:48:11 +0000 (14:48 +0000)]
Don't delete a held lock.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9299043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1488
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Tue, 7 May 2013 14:13:00 +0000 (14:13 +0000)]
Fix off-by-one ID in the basic block entry count instrumentation.
R=rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9235043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1487
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 3 May 2013 21:25:47 +0000 (21:25 +0000)]
Add instruction movzx to assembly.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9096046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1486
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 3 May 2013 20:24:27 +0000 (20:24 +0000)]
Centralize service utilities and create Service base class.
A following CL will refactor Logger to derive from Service, and do the same to RpcService (call-trace). This is part of a longer term effort of unifying logger and call_trace_service.
BUG=
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9182043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1485
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 3 May 2013 20:22:28 +0000 (20:22 +0000)]
Add test and arithmetic byte instructions in block graph assembly.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9155044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1484
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 3 May 2013 20:02:37 +0000 (20:02 +0000)]
Add test instructions and some byte instructions in assembly.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9061044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1483
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Fri, 3 May 2013 19:16:25 +0000 (19:16 +0000)]
Add dynamic symbol support to trace file format.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9167043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1482
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 3 May 2013 14:41:36 +0000 (14:41 +0000)]
Add setXX instructions and mov_fs to block_graph assembly.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9146043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1481
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Fri, 3 May 2013 13:30:17 +0000 (13:30 +0000)]
Tidy parse engine unittest a little.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/9147043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1480
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 2 May 2013 21:36:27 +0000 (21:36 +0000)]
Fix previous CL of relative reference (oups).
https://codereview.appspot.com/9110045/
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9125044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1479
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 2 May 2013 21:13:04 +0000 (21:13 +0000)]
Add support for setXX instructions and mov with segment prefix in assembly.
R=chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9137043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1478
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 2 May 2013 21:01:10 +0000 (21:01 +0000)]
Fix support for --agent in asan mode.
This CL also renames some members of the InstrumentApp class from using "client" terminology to "agent" terminology.
R=chrisha@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9099046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1477
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 2 May 2013 20:39:16 +0000 (20:39 +0000)]
Change call reference from absolute to relative in assembly.
Fix a typo in assembly unittests.
R=chrisha@chromium.org, rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/9110045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1476
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 2 May 2013 18:40:54 +0000 (18:40 +0000)]
Add "mode" support to instrument wrapper script.
Plumb support for the --mode=foo parameter through the instrument.bat/py
script chain. Defaults to calltrace mode if not specified, preserving
compatibility with the interface of earlier versions of the script.
R=chrisha@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9127043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1474
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 1 May 2013 18:36:02 +0000 (18:36 +0000)]
Fix nits from post-commit review comments.
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9093043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1473
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 1 May 2013 15:13:20 +0000 (15:13 +0000)]
Increment versio to 0.2.19.3 to trigger a build (for testing).
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9074044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1472
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 1 May 2013 06:00:02 +0000 (06:00 +0000)]
Increment version to 0.2.19.2 to tribber a build.
TBR= chrisha@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9066045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1471
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 1 May 2013 05:52:04 +0000 (05:52 +0000)]
Get rid of references to chrome_dll.pdb
This has been renamed chrome.dll.pdb instead. Support both
conventions.
TBR= chisha@chromium.org, sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/9068043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1470
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 1 May 2013 00:41:57 +0000 (00:41 +0000)]
Set the OFFICIAL_BUILD define for the official release builds.
This totally disable the DCHECKs (they don't generate any code).
This has a huge impact on performances (bb_entry is down from 30x to 20x with this) and this also have an impact on size (the size of asan_rtl.dll has been reduced by 10%).
BUG=
R=chrisha@chromium.org, rogerm@chromium.org
Review URL: https://codereview.appspot.com/9039047
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1469
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 30 Apr 2013 21:58:40 +0000 (21:58 +0000)]
Bump version to trigger an official build (for testing)
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/9023046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1468
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 30 Apr 2013 21:54:09 +0000 (21:54 +0000)]
SyzyASAN Logger: Use --unique-instance-id instead or auto-magic inference.
Replaces --instance-id=unique with --unique-instance-id and removes automatic application of the same if the logger isn't given an instance ID when it starts a sub-command.
R=chrisha@chromium.org, etienneb@chromium.org
Review URL: https://codereview.appspot.com/8843046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1467
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Tue, 30 Apr 2013 16:57:48 +0000 (16:57 +0000)]
Make the slow path faster !
We had a tendency to consider the slow path as a rare case but it turns out that this is not really the case... This CL inline the IsAccessible function into the asm routine. This bring a little bit more complexity but this make the runtime much faster ! I observe a gain between 0.24 and 1.34 x on a dromaeo testbench (our worst case in this benchmark is reduced from 4.76x to 3.42x). Maybe this should be ran on a CPU2006 benchmark before landing ?
BUG=
R=chrisha@chromium.org, siggi@chromium.org
Review URL: https://codereview.appspot.com/9027043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1466
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Thu, 25 Apr 2013 21:20:40 +0000 (21:20 +0000)]
Minimally cover for ID rollover.
R=sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/8795048
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1465
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Thu, 25 Apr 2013 19:02:16 +0000 (19:02 +0000)]
Make symbol ID assignment explicit in SymbolMap interface.
R=rogerm@chromium.org
Review URL: https://codereview.appspot.com/8931045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1464
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Thu, 25 Apr 2013 17:36:55 +0000 (17:36 +0000)]
Add unique instance id generation to SyzyASAN logger.
R= sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/8831045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1463
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 24 Apr 2013 15:45:15 +0000 (15:45 +0000)]
Checking in version 1461 release binaries.
TBR= chrisha@chromium.org, siggi@chromium.org
Review URL: https://codereview.appspot.com/8701050
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1462
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Wed, 24 Apr 2013 06:06:34 +0000 (06:06 +0000)]
Bump version to 0.2.19.0
TBR= chisha@chromium.org, siggi@chromium.org
Review URL: https://codereview.appspot.com/8632054
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1461
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Wed, 24 Apr 2013 03:38:30 +0000 (03:38 +0000)]
Don't skip any stack frame by default.
This shouldn't reduce the stack compression ratio too much for Chrome. I'll update the SYZYGY_ASAN_OPTIONS env var on the test bots to remove the 5 bottom frames for the unittests.
BUG=
Review URL: https://codereview.appspot.com/8932043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1460
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 23 Apr 2013 15:20:13 +0000 (15:20 +0000)]
Allow the logger to be interrupted while it's waiting for an app to stop.
R= chrisha@chromium.org, etienneb@chromium.org
Review URL: https://codereview.appspot.com/8916043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1459
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Mon, 22 Apr 2013 23:36:00 +0000 (23:36 +0000)]
Stop the asan logger if --exit-on-failure is given.
R= sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/8551046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1458
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
siggi@chromium.org [Mon, 22 Apr 2013 21:39:50 +0000 (21:39 +0000)]
Dynamic SymbolMap implementation, redo.
This implements the new protocol, where:
- Per-thread aggreagates can lookup and reference a symbol with a unique ID.
- On reuse, aggregates can verify that a symbol hasn't moved by looking at the move count.
I've still to resolve when symbols are traced, it probably makes sense to do that on naming in the SymbolMap, though that's YTBD.
R=chrisha@chromium.org
Review URL: https://codereview.appspot.com/8875043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1457
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
sebmarchand@chromium.org [Mon, 22 Apr 2013 15:00:37 +0000 (15:00 +0000)]
Capture the time since when a block has been freed and add it to the report.
This looks like the best tradeoff between the information this add vs the cost on performance. This make the HeapAlloc function 1.5-2% slower on my benchmarks..
It would be nice to also capture the timestamp at allocation time, but in this case I'm not sure that the value of the added information worth the cost on performance...
I'm using the rdtsc function (wrapped by trace::common::GetTsc()), to get the timestamps, this won't provide an accurate value on all the different user configurations but as this is just a nice-to-have information in the error report this is a good tradeoff to keep good performances.
BUG=
Review URL: https://codereview.appspot.com/8676049
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1456
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 22 Apr 2013 14:17:20 +0000 (14:17 +0000)]
Add unittesting to Fuzzing Transformation.
BUG=
Review URL: https://codereview.appspot.com/8839045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1455
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 22 Apr 2013 13:49:42 +0000 (13:49 +0000)]
Implements a transform to validate the Liveness Analysis.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8670047
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1454
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Mon, 22 Apr 2013 13:33:28 +0000 (13:33 +0000)]
Insert liveness analysis into Asan instrumentation.
This CL bring the liveness analysis to the place where hooks are inserted, but still doesn't use the information.
R=sebmarchand@chromium.org,chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8596046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1453
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Thu, 18 Apr 2013 21:21:08 +0000 (21:21 +0000)]
Checking in version 1450 release binaries.
BUG=
Review URL: https://codereview.appspot.com/8541050
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1452
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 18 Apr 2013 20:36:16 +0000 (20:36 +0000)]
Avoid a DCHECK crash when giving a BasicBlock trace instead of a CallTrace to Reorder.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8821048
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1451
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 18 Apr 2013 17:24:31 +0000 (17:24 +0000)]
Implementation of a registers liveness analysis on Block Graph.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8577044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1450
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Thu, 18 Apr 2013 15:55:48 +0000 (15:55 +0000)]
Bump version to 0.2.18.0
BUG=
Review URL: https://codereview.appspot.com/8729049
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1449
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 18 Apr 2013 15:45:55 +0000 (15:45 +0000)]
Accept reordering of image with only basic block reordering information.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8841046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1448
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Thu, 18 Apr 2013 13:29:21 +0000 (13:29 +0000)]
Implements arithmetic instructions in block_graph assembler.
R=chrisha@chromium.org,siggi@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8833045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1447
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Wed, 17 Apr 2013 18:33:18 +0000 (18:33 +0000)]
Add encoding of arithmetic instruction in assembly.
R=siggi@chromium.org,chrisha@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8789044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1446
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 16 Apr 2013 05:04:35 +0000 (05:04 +0000)]
Fix a typo in a comment.
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/8761046
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1445
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 16 Apr 2013 04:48:51 +0000 (04:48 +0000)]
Add asan key/value pairs to the crash report for breakpad.
R= sebmarchand@chromium.org, chrisha@chromium.org
Review URL: https://codereview.appspot.com/8679043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1444
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Mon, 15 Apr 2013 15:24:36 +0000 (15:24 +0000)]
SyzyASAN - Leave the contents of freed blocks intact.
Prior to tise CL, the SyzyASAN runtime would clobber the contents of a freed memory block. It now leaves the contents intact so that it can be inspected by a developer when investigating a crash report/dump.
R= sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/8771043
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1443
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Wed, 10 Apr 2013 12:22:51 +0000 (12:22 +0000)]
Create common/assertions.h and COMPILE_ASSERT_IS_POD.
This exposes a handy macro for ensuring that POD objects are indeed POD. This is useful for struct declarations of things into which we intend to directly coerce a stream of bytes.
BUG=
Review URL: https://codereview.appspot.com/8580048
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1442
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Tue, 9 Apr 2013 21:16:09 +0000 (21:16 +0000)]
Remove 2 obsolete TODO comments.
R= sebmarchand@chromium.org
Review URL: https://codereview.appspot.com/8584045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1441
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Mon, 8 Apr 2013 14:50:22 +0000 (14:50 +0000)]
Checking in version 1438 release binaries.
R= chrisha@chromium.org
Review URL: https://codereview.appspot.com/8508044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1439
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Mon, 8 Apr 2013 03:45:54 +0000 (03:45 +0000)]
Bump version to trigger a build
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/8455044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1438
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
rogerm@chromium.org [Mon, 8 Apr 2013 02:10:23 +0000 (02:10 +0000)]
Revert "Integrate dromaeo mode into the benchmark and profile runners."
This change is suspected to be breaking the build periodiocally (every second
build, the sanity check of the benchmark fails an installer step).
TBR= chrisha@chromium.org
Review URL: https://codereview.appspot.com/8426049
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1437
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
etienneb@chromium.org [Fri, 5 Apr 2013 19:17:36 +0000 (19:17 +0000)]
Fix logger/application command line splitting in logger.
R=chrisha@chromium.org,rogerm@chromium.org
BUG=
Review URL: https://codereview.appspot.com/8277045
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1436
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 5 Apr 2013 17:48:50 +0000 (17:48 +0000)]
Part of r1434 that was lost in a rollback.
See https://codereview.appspot.com/8382044/ for details.
BUG=
Review URL: https://codereview.appspot.com/8428044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1435
15e8cca8-e42c-11de-a347-
f34a4f72eb7d
chrisha@chromium.org [Fri, 5 Apr 2013 17:26:01 +0000 (17:26 +0000)]
Make BasicBlockDecomposer ignore labels past end of block data.
We previously assumed that all labels would be attached to actual locations within the data of a block. However, we have recently begun seeing simple blocks that terminate with a non-returning call, and have no epilog. These blocks have a debug-end label attached to the first byte beyond the end of the block, breaking this assumption. This CL handles this by ignoring them for now (they are only debug info, and not needed for our transforms to function correctly). This is a workaround until a persistent mechanism can be implemented.
BUG=
Review URL: https://codereview.appspot.com/8382044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk@1434
15e8cca8-e42c-11de-a347-
f34a4f72eb7d