Issue metadata
Sign in to add a comment
|
[Linux x86 x64 bots] 5% regression in media_perftests at 505396:505458 |
||||||||||||||||||||
Issue descriptionSee the link to graphs below.
,
Oct 11 2017
๐ Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14902ea5780000
,
Oct 11 2017
๐ฟ Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/14902ea5780000
,
Oct 12 2017
Sorry about that. Looks like the Pinpoint error is https://github.com/catapult-project/catapult/issues/3921 I'll bump the priority on that bug. Looking at the Pinpoint results, the regression shows clearly at: zlib adler_simd.c By noel@chromium.org ยท Fri Sep 29 19:44:25 2017 chromium @ 09b784fd12f255a9da38107ac6e0386f4dde6d68
,
Oct 12 2017
Any indication that this may be affecting ARM as well?
,
Nov 23 2017
,
Nov 28 2017
cavalcantii@ mentioned that he had no time to investigate, reassigning.
,
Nov 28 2017
media_perftests is a standalone micro benchmark, which is built with: % ninja -C out/Release media_perftests I built a clean release (non-component) build of chrome before and after my change, and ran the micro bench mark, audio_converter/convert_pass_through, as follows % ./out/Release/media_perftests --gtest_filter="*ConvertBenchmarkFIFO" | \ grep convert_pass_through which reports the number runs per second. I ran 100 tests on quiet linux box, with and without my change for i in $(seq 100); do ./out/Release/media_perftests --gtest_filter="*ConvertBenchmarkFIFO" | \ grep "convert_pass_through" | \ sed -E "s|.*= ||;s| runs/s||;s|\..*||"; done and plotted the results (attached).
,
Nov 28 2017
The results before and after have a similar distribution, and the run/s average results for both cases are about the same. I could not reproduce a 5% difference as reported in #4.
media_perftests does depends on skia, skia depends on libPNG, and libPNG depends on zlib. The change in question altered the zlib adler32 computation to add SIMD support. I changed the alder32_z() code in zlib/adler32.c to read:
+ #include <stdio.h>
uLong ZEXPORT adler32_z(adler, buf, len)
uLong adler;
const Bytef *buf;
z_size_t len;
{
unsigned long sum2;
unsigned n;
+ fprintf(stderr, "crash: alder32_z called");
+ exit(42);
#if defined(ADLER32_SIMD_SSSE3)
if (x86_cpu_enable_ssse3 && buf && len >= 64)
return adler32_simd_(adler, buf, len);
#elif defined(ADLER32_SIMD_NEON)
if (buf && len >= 64)
return adler32_simd_(adler, buf, len);
#endif
...
to force a crash if adler32_z() was ever called. I made a similar change to the zlib/adler_simd.c code to make it crash also, and recompiled the media_perfests with those changes.
media_perfests does not crash with these changes however, so my conclusion is the zlib adler32 code is not being used by this benchmark at all.
,
Dec 13 2017
> media_perftests does not crash with these changes however, so my conclusion is the zlib adler32 code is not being used by this benchmark at all. Also none of the other x86 or x64 bots that run media_perftests complained, just the linux bot. Best I can suggest is "working as intended" here, but reassigning to its owner to decide.
,
Dec 13 2017
Sounds reasonable. +dalecurtis@ just in case he disagrees. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Oct 9 2017