New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 644443 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

cc_serializatoin_perftest deserialization performance dropped by ~10%

Project Member Reported by yzshen@chromium.org, Sep 6 2016

Issue description

Please see:
https://chromeperf.appspot.com/report?sid=8e74635c494c0874e2900854736df820528fdd8f6a8a8579141f3bf16940792d&start_rev=413790&end_rev=414936

Num runs in 2 seconds for DelegatedFrame_ManyRenderPasses_10_500 dropped about 10%. (And other test cases also showed some regression, too)
It happened with both ParamTraits of old IPC and StructTraits of Mojo. 

Fady and I looked at the blame list:
http://test-results.appspot.com/revision_range?start=414578&end=414626

It seems this CL may be relevant:
https://codereview.chromium.org/2229953003

Fady has a theory that maybe the kLargestDrawQuadSize change resulted in allocation of more memory.

hubbe@, would you please take a look? Thanks!
 

Comment 1 by hubbe@chromium.org, Sep 6 2016

It's likely that my change is to blame, but 10% seems a bit much, since it doesn't actually encode any more data.  I can take a look and see if I can figure it out.

Comment 2 by hubbe@chromium.org, Sep 8 2016

Looks like the code is written like malloc(x) is an O(1) operation, which perhaps it should be, but in chrome there is a memset() in free() which means that allocating more memory takes more time.

I also noticed that kLargestQuadSize is used in two different contexts, once to mean "largest possible serialized quad" and once to mean "sizeof(largest quad)". Since those two values are now two different things, I've made two different functions, which should put performance very nearly back to what it was before.

https://codereview.chromium.org/2324723002

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e099ceca4f5145bf650a2293807c585cc717121f

commit e099ceca4f5145bf650a2293807c585cc717121f
Author: hubbe <hubbe@chromium.org>
Date: Fri Sep 09 18:36:33 2016

Fix kLargestDrawQuadSize

This should work, but triggered a bug in the past.
Trying again, if nothing else I'll find out what problem was triggered.

BUG= 644443 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2328433005
Cr-Commit-Position: refs/heads/master@{#417646}

[modify] https://crrev.com/e099ceca4f5145bf650a2293807c585cc717121f/cc/quads/draw_quad_unittest.cc
[modify] https://crrev.com/e099ceca4f5145bf650a2293807c585cc717121f/cc/quads/largest_draw_quad.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/208f4013ba1cab8f188beb508915c49abe5ebdf7

commit 208f4013ba1cab8f188beb508915c49abe5ebdf7
Author: dmurph <dmurph@chromium.org>
Date: Fri Sep 09 21:02:01 2016

Revert of Fix kLargestDrawQuadSize (patchset #1 id:1 of https://codereview.chromium.org/2328433005/ )

Reason for revert:
Reverting, I think this caused buffer size issues
https://bugs.chromium.org/p/chromium/issues/detail?id=645634
BUG= 645634 

Original issue's description:
> Fix kLargestDrawQuadSize
>
> This should work, but triggered a bug in the past.
> Trying again, if nothing else I'll find out what problem was triggered.
>
> BUG= 644443 
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
>
> Committed: https://crrev.com/e099ceca4f5145bf650a2293807c585cc717121f
> Cr-Commit-Position: refs/heads/master@{#417646}

TBR=danakj@chromium.org,hubbe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 644443 

Review-Url: https://codereview.chromium.org/2326153002
Cr-Commit-Position: refs/heads/master@{#417708}

[modify] https://crrev.com/208f4013ba1cab8f188beb508915c49abe5ebdf7/cc/quads/draw_quad_unittest.cc
[modify] https://crrev.com/208f4013ba1cab8f188beb508915c49abe5ebdf7/cc/quads/largest_draw_quad.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbeebcb824092900816b2b35901fe42b6ff7f7fc

commit cbeebcb824092900816b2b35901fe42b6ff7f7fc
Author: hubbe <hubbe@chromium.org>
Date: Sat Sep 10 02:25:32 2016

Fix kLargestDrawQuadSize

This should be the right fix.
The problem was that two of the classes were not listed in the
static asserts since they were already in the sizeof at the top, which
I missed when I changed it to YUVVideoDrawQuad.

BUG= 644443 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2324083003
Cr-Commit-Position: refs/heads/master@{#417802}

[modify] https://crrev.com/cbeebcb824092900816b2b35901fe42b6ff7f7fc/cc/quads/draw_quad_unittest.cc
[modify] https://crrev.com/cbeebcb824092900816b2b35901fe42b6ff7f7fc/cc/quads/largest_draw_quad.cc

Comment 6 by hubbe@chromium.org, Sep 10 2016

Status: Fixed (was: Assigned)

Sign in to add a comment