Investigate "Function basic block count change detected (counter mismatch)" warnings from llvm-profdata |
||||||||
Issue descriptionHappened while merging .profraw dumps from bunch of different unit tests binaries: https://bugs.chromium.org/p/chromium/issues/detail?id=789981#c3 dumps/angle_unittests/dump.2040316039267677098_3.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.2040316039267677098_6.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.2040316039267677098_1.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.2040316039267677098_4.profraw: pthread_equal: Counter overflow dumps/crypto_unittests/dump.17658236193432990634_4.profraw: pthread_equal: Counter overflow dumps/crypto_unittests/dump.17658236193432990634_4.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.11332153608800367530_2.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.11332153608800367530_2.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.11332153608800367530_6.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.11332153608800367530_5.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_2.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_5.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.16981596636894786474_1.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.16981596636894786474_7.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.5003564814167241642_0.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.16981596636894786474_1.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.16981596636894786474_7.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_2.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.18129347680933893626_5.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.5003564814167241642_0.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.5003564814167241642_6.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.5003564814167241642_7.profraw: pthread_equal: Counter overflow dumps/net_unittests/dump.870461632128807850_7.profraw: pthread_equal: Counter overflow dumps/net_unittests/dump.870461632128807850_6.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.13472296681195446067_3.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/services_unittests/dump.13472296681195446067_4.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.13472296681195446067_5.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.13472296681195446067_6.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.13472296681195446067_7.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.14691376123264453616_5.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.14691376123264453616_5.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.14691376123264453616_7.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.14691376123264453616_7.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.8437274155298386858_6.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.8437274155298386858_1.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.8437274155298386858_4.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.8437274155298386858_0.profraw: pthread_equal: Counter overflow dumps/sql_unittests/dump.17677217771644318634_4.profraw: pthread_equal: Counter overflow dumps/sql_unittests/dump.17677217771644318634_4.profraw: pthread_equal: Counter overflow dumps/swiftshader_unittests/dump.13472296681195446067_0.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/swiftshader_unittests/dump.13472296681195446067_5.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/net_unittests/dump.870461632128807850_2.profraw: pthread_equal: Counter overflow dumps/storage_unittests/dump.340226792365552554_0.profraw: pthread_equal: Counter overflow dumps/net_unittests/dump.870461632128807850_2.profraw: pthread_equal: Counter overflow dumps/wtf_unittests/dump.18136610327846253482_0.profraw: pthread_equal: Counter overflow dumps/wtf_unittests/dump.18136610327846253482_0.profraw: pthread_equal: Counter overflow dumps/storage_unittests/dump.340226792365552554_0.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.4846653579688473514_6.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.4846653579688473514_5.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.4846653579688473514_6.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.4846653579688473514_5.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_1.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_2.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_0.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_5.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_1.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.18402210822757872554_2.profraw: pthread_equal: Counter overflow warning: dumps/views_unittests/dump.8821794557754463738_0.profraw: Counter overflow warning: dumps/views_unittests/dump.8821794557754463738_4.profraw: Counter overflow warning: dumps/views_unittests/dump.8821794557754463738_5.profraw: Counter overflow warning: dumps/wm_unittests/dump.16236102734248777569_2.profraw: Counter overflow warning: dumps/wm_unittests/dump.16236102734248777569_6.profraw: Counter overflow warning: dumps/wm_unittests/dump.16236102734248777569_7.profraw: Counter overflow warning: dumps/wm_unittests/dump.17328508853544088490_2.profraw: Counter overflow warning: dumps/wm_unittests/dump.17328508853544088490_6.profraw: Counter overflow warning: dumps/wm_unittests/dump.17328508853544088490_7.profraw: Counter overflow warning: dumps/wtf_unittests/dump.18136610327846253482_0.profraw: Counter overflow warning: dumps/wtf_unittests/dump.18136610327846253482_1.profraw: Counter overflow warning: dumps/wtf_unittests/dump.18136610327846253482_3.profraw: Counter overflow warning: dumps/wtf_unittests/dump.18136610327846253482_4.profraw: Counter overflow warning: dumps/wtf_unittests/dump.18136610327846253482_5.profraw: Counter overflow warning: dumps/storage_unittests/dump.340226792365552554_5.profraw: Function basic block count change detected (counter mismatch) warning: dumps/storage_unittests/dump.340226792365552554_6.profraw: Counter overflow warning: dumps/storage_unittests/dump.340226792365552554_7.profraw: Counter overflow warning: dumps/swiftshader_unittests/dump.13472296681195446067_0.profraw: Counter overflow
,
Feb 22 2018
Another bunch of warnings from doing the same stuff on a newer revision: $ time third_party/llvm-build/Release+Asserts/bin/llvm-profdata merge -sparse dumps/*/*.profraw -o dumps/merged.profdata dumps/angle_unittests/dump.18316999429472973738_5.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.18316999429472973738_3.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.18316999429472973738_2.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.386878935451104170_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_0.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_1.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_3.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.2315245595604087722_6.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.2315245595604087722_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_0.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_1.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_3.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.4991571564513522602_2.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.12746703418510548787_1.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/services_unittests/dump.12746703418510548787_2.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.12746703418510548787_3.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/content_unittests/dump.1296838580397994922_4.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.1296838580397994922_2.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.4991571564513522602_6.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.12746703418510548787_7.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.12746703418510548787_4.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/gpu_unittests/dump.5461668470095934378_7.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_5.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_7.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_5.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_0.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_1.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_2.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_3.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_0.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_1.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_6.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_7.profraw: pthread_equal: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_0.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_1.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_2.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_3.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_4.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_5.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_6.profraw: Counter overflow warning: dumps/views_unittests/dump.6610692226059982330_7.profraw: Counter overflow warning: dumps/wm_unittests/dump.15835933278296446817_3.profraw: Counter overflow warning: dumps/wm_unittests/dump.5416851889370493866_0.profraw: Counter overflow warning: dumps/wm_unittests/dump.5416851889370493866_2.profraw: Counter overflow warning: dumps/wm_unittests/dump.5416851889370493866_3.profraw: Counter overflow warning: dumps/wtf_unittests/dump.16755835025050891178_0.profraw: Counter overflow warning: dumps/wtf_unittests/dump.16755835025050891178_2.profraw: Counter overflow warning: dumps/wtf_unittests/dump.16755835025050891178_4.profraw: Counter overflow warning: dumps/wtf_unittests/dump.16755835025050891178_7.profraw: Counter overflow warning: dumps/swiftshader_unittests/dump.12746703418510548787_5.profraw: Function basic block count change detected (counter mismatch) warning: dumps/swiftshader_unittests/dump.12746703418510548787_6.profraw: Function basic block count change detected (counter mismatch) error: dumps/service_manager_unittests/dump.14882662155174628336_0.profraw: Invalid instrumentation profile data (file header is corrupt) real 2m54.935s user 19m23.004s sys 3m54.036s
,
Feb 22 2018
And another bunch of warnings observed when merging dumps from unittests + fuzzers: $ time third_party/llvm-build/Release+Asserts/bin/llvm-profdata merge -sparse dumps/*/*.profraw fuzzer_dumps/*/dump.profraw -o tests_and_fuzzers.profdata dumps/angle_unittests/dump.18316999429472973738_5.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.18316999429472973738_2.profraw: pthread_equal: Counter overflow dumps/angle_unittests/dump.18316999429472973738_3.profraw: pthread_equal: Counter overflow dumps/gfx_unittests/dump.386878935451104170_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_1.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_0.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_3.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.2315245595604087722_6.profraw: pthread_equal: Counter overflow dumps/media_service_unittests/dump.2315245595604087722_6.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_1.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_0.profraw: pthread_equal: Counter overflow dumps/media_mojo_unittests/dump.2734634062402409978_3.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.4991571564513522602_2.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.12746703418510548787_2.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/services_unittests/dump.12746703418510548787_3.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/services_unittests/dump.12746703418510548787_4.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/content_unittests/dump.1296838580397994922_2.profraw: pthread_equal: Counter overflow dumps/content_unittests/dump.1296838580397994922_4.profraw: pthread_equal: Counter overflow dumps/media_unittests/dump.4991571564513522602_6.profraw: pthread_equal: Counter overflow dumps/sql_unittests/dump.16602651782091699114_4.profraw: pthread_equal: Counter overflow dumps/sql_unittests/dump.16602651782091699114_4.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_7.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_5.profraw: pthread_equal: Counter overflow dumps/services_unittests/dump.12746703418510548787_7.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/wm_unittests/dump.5416851889370493866_7.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_7.profraw: pthread_equal: Counter overflow dumps/gpu_unittests/dump.5461668470095934378_5.profraw: pthread_equal: Counter overflow dumps/wm_unittests/dump.5416851889370493866_7.profraw: pthread_equal: Counter overflow dumps/wtf_unittests/dump.16755835025050891178_7.profraw: pthread_equal: Counter overflow dumps/wtf_unittests/dump.16755835025050891178_7.profraw: pthread_equal: Counter overflow fuzzer_dumps/gpu_swiftshader_fuzzer/dump.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_2.profraw: pthread_equal: Counter overflow fuzzer_dumps/mediasource_WEBM_VP9_pipeline_integration_fuzzer/dump.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_1.profraw: pthread_equal: Counter overflow fuzzer_dumps/mediasource_WEBM_VP9_pipeline_integration_fuzzer/dump.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_3.profraw: pthread_equal: Counter overflow fuzzer_dumps/blink_text_codec_UTF_8_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/blink_text_codec_WINDOWS_1252_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/blink_png_decoder_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/clear_site_data_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_2.profraw: pthread_equal: Counter overflow fuzzer_dumps/css_parser_proto_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/feature_policy_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_3.profraw: pthread_equal: Counter overflow fuzzer_dumps/content_security_policy_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_1.profraw: pthread_equal: Counter overflow dumps/unit_tests/dump.11404473204906193834_0.profraw: pthread_equal: Counter overflow fuzzer_dumps/css_parser_fast_paths_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_6.profraw: pthread_equal: Counter overflow fuzzer_dumps/html_preload_scanner_fuzzer/dump.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/unit_tests/dump.11404473204906193834_7.profraw: pthread_equal: Counter overflow fuzzer_dumps/profiling_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/xml_parser_fuzzer/dump.profraw: pthread_equal: Counter overflow fuzzer_dumps/origin_manifest_parser_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/origin_trial_token_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/mhtml_parser_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/xml_parser_fuzzer/dump.profraw: pthread_equal: Counter overflow fuzzer_dumps/template_url_parser_fuzzer/dump.profraw: pthread_equal: Counter overflow fuzzer_dumps/swiftshader_vertex_routine_fuzzer/dump.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) fuzzer_dumps/renderer_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/template_url_parser_fuzzer/dump.profraw: pthread_equal: Counter overflow fuzzer_dumps/web_icon_sizes_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/blink_harfbuzz_shaper_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/stylesheet_contents_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/text_resource_decoder_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/blink_json_parser_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/blink_html_tokenizer_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) fuzzer_dumps/v8_serialized_script_value_fuzzer/dump.profraw: _ZN2sh17ConstructCompilerEj12ShShaderSpec14ShShaderOutput: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/v8_wasm_names_section_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/v8_wasm_types_section_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/vp8_depacketizer_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/vp9_qp_parser_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/webcrypto_ec_import_key_pkcs8_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/webcrypto_rsa_import_key_spki_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/web_icon_sizes_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/webusb_descriptors_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/xml_parser_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/zlib_deflate_set_dictionary_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/zlib_uncompress_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/zucchini_patch_fuzzer/dump.profraw: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/sign_response_data_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/skia_color_space_fuzzer/dump.profraw: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/skia_image_filter_proto_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/skia_path_fuzzer/dump.profraw: Counter overflow warning: fuzzer_dumps/sqlite3_ossfuzz_fuzzer/dump.profraw: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/sqlite3_prepare_v2_fuzzer/dump.profraw: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/string_to_int_fuzzer/dump.profraw: Function basic block count change detected (counter mismatch) warning: fuzzer_dumps/stylesheet_contents_fuzzer/dump.profraw: Counter overflow real 4m28.893s user 30m11.836s sys 3m7.184s
,
Feb 26 2018
Such errors may negatively affect total coverage report, as merge is being interrupted when that happens:
void InstrProfRecord::merge(InstrProfRecord &Other, uint64_t Weight,
function_ref<void(instrprof_error)> Warn) {
// If the number of counters doesn't match we either have bad data
// or a hash collision.
if (Counts.size() != Other.Counts.size()) {
Warn(instrprof_error::count_mismatch);
return;
}
<...>
With my current approach to merge, I seem to observe such an error only 1-2 times per total coverage report generation. Thus, I currently simply raw dumps producing the error.
I wouldn't be too surprised if there is indeed a hash collision. I'll continue observations on more revisions and debug the error after that.
,
Feb 26 2018
Also, the issue I'm observing happens with the same function across different targets: dumps/services_unittests1/dump.1673089028436849578_0.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/services_unittests1/dump.1673089028436849578_1.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/swiftshader_unittests/dump.12747477572503478067_1.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/swiftshader_unittests/dump.12747477572503478067_0.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) dumps/gpu_swiftshader_fuzzer1/dump.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) And the function seems to be declared in two places at least: https://cs.chromium.org/search/?q=macroexpander+gettoken&sq=package:chromium&type=cs
,
Mar 24 2018
,
Mar 26 2018
Running more targets, I'm seeing that warning more often. _ZN2pp13MacroExpander8getTokenEPNS_5TokenE is the only symbol generating warnings at the moment. I wonder if it's possible to blacklist it somehow...
,
Mar 26 2018
Do we know from which file this symbol comes from?
,
Mar 26 2018
Sure, see c#5, it's defined in two places at least: https://cs.chromium.org/search/?q=MacroExpander::getToken%5C(Token+%5C*token%5C)&sq=package:chromium&type=cs And likely that is the reason why we're seeing the warning, as one function has two counters with the same NameRef.
,
Mar 26 2018
Sorry I missed the link in #5. I'm not super check with how linker resolves symbols, but do we know how the signature "_ZN2pp13MacroExpander8getTokenEPNS_5TokenE" is generated? And I'm surprised that the file name is not one of the inputs.
,
Mar 26 2018
I think many different targets depend on GPU stuff, so they link in GPU altogether with those symbols as well. Re the name, it's just C++ name mangling. Since it's possible to have overloaded functions, symbols names become more verbose in order to reflect that (compared to pure C where names are clear).
,
Apr 2 2018
,
Apr 21 2018
This issue is important as per https://bugs.chromium.org/p/chromium/issues/detail?id=831939#c12 and needs investigation, but I don't think this is a blocker right now as it may affect only some areas of the codebase.
,
Apr 25 2018
It looks like _ZN2pp13MacroExpander8getTokenEPNS_5TokenE is the only symbol causing troubles. I've just checked the logs from the bot again. jmadill@, lucferron@, geofflang@, I wonder if you guys can help with that. content_browsertests: dumps/content_browsertests/dump.855472856347505578_1.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/content_browsertests/dump.855472856347505578_0.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) warning: dumps/content_browsertests/dump.14334184836839687410_3.profraw: Function basic block count change detected (counter mismatch) warning: dumps/content_browsertests/dump.855472856347505578_0.profraw: Function basic block count change detected (counter mismatch) gpu_swiftshader_fuzzer: warning: dumps/gpu_swiftshader_fuzzer/dump.14334184836839687410_0.profraw: Function basic block count change detected (counter mismatch) services_unittests: dumps/services_unittests/dump.3096629097081949168_0.profraw: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. warning: dumps/services_unittests/dump.18443562707322227696_3.profraw: Function basic block count change detected (counter mismatch) warning: dumps/services_unittests/dump.2769636281426463728_0.profraw: Function basic block count change detected (counter mismatch) warning: dumps/services_unittests/dump.3096629097081949168_0.profraw: Function basic block count change detected (counter mismatch) dumps/content_browsertests/test_by_one.profdata: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/gpu_swiftshader_fuzzer/test_by_one.profdata: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/swiftshader_unittests/test_by_one.profdata: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary. dumps/swiftshader_vertex_routine_fuzzer/test_by_one.profdata: _ZN2pp13MacroExpander8getTokenEPNS_5TokenE: Function basic block count change detected (counter mismatch) Make sure that all profile data to be merged is generated from the same binary.
,
Apr 25 2018
Sorry, can you provide more info? Is there a problem with angle_unittests? I see some mentions of swiftshader and other test suites, but it's unclear to me if ANGLE is related, or even what the problem is here.
,
Apr 25 2018
Sure! The problem is that it looks like we have different functions corresponding to _ZN2pp13MacroExpander8getTokenEPNS_5TokenE symbol. That becomes an issue when generating code coverage report, as LLVM profiler gets confused when it sees two profile dumps where the same function has different number of basic blocks. Does it make any sense? Do you have any idea why that can be happening?
,
Apr 25 2018
ANGLE and swiftshader both have very similar shader compiler code, they originated from the same project. You can see the MacroExpander class is almost the same: https://cs.chromium.org/chromium/src/third_party/angle/src/compiler/preprocessor/MacroExpander.h https://cs.chromium.org/chromium/src/third_party/swiftshader/src/OpenGL/compiler/preprocessor/MacroExpander.h I would imagine it would be triggered for many classes between these two projects, not sure if the mangled names can be annotated per library.
,
Apr 25 2018
Would renaming ANGLE's version of the method fix the naming conflict?
,
Apr 25 2018
Also yes, annotating the method with the object would solve the problem generally and prevent it from re-occurring.
,
Apr 25 2018
I think either way is fine for us. What would be the most convenient for you?
,
Apr 25 2018
This seems like a bug in the LLVM profiler or merging process if it can't differentiate between two symbols in different libraries that have the same name. From comment #3 it looks like there are a couple extra conflicting symbols. We can probably rename and work around the issue but I would imagine these issues will pop up again.
,
Apr 25 2018
,
Apr 25 2018
geofflang@, I agree with you. However, we've already fixed the other issues and there is a hope that we can get rid of them completely. I should've filed a separate bug for MacroExpander::getToken to avoid unnecessary confusion, sorry about that. Here it is: issue 836820 My understanding from LLVM side is that it's kind of our problem if we merge profiler dumps from various binaries with colliding symbols. It doesn't look like anyone else on Earth is trying to generate code coverage report for such a huge and complicated project as Chrome. We've been trying to fix a similar issue before ( issue 801362 and https://bugs.llvm.org/show_bug.cgi?id=23499), but haven't succeeded :(
,
Apr 25 2018
In the last sentence of c#23, I meant that we hadn't succeeded in fixing the issue in LLVM, but still found a solution in Chromium.
,
Apr 25 2018
We can certainly change the name of the method in ANGLE to unblock you guys. I do agree with Geoff that enforcing a constraint that no two functions can have the same signature throughout all of Chrome is something that would not be very easy and might lead to repeated unexpected breakage in your tool. A long-term solution might be tweaking the signatures somehow - is it possible to inspect the profiler dumps and do some some rewriting in a pre-processing step?
,
Apr 25 2018
We'd greatly appreciate if you could rename that method. Re long-term solution it has to be fixed in the linker, as it is what is responsible for generating profile counters and other data embedded into compiled binaries. It doesn't seem possible to re-write anything in the dumps / when processing the dumps, because dumps' content must strictly match profile data embedded into binaries so it can be mapped to the source code at the end. The upstream issue is still open though. If that problem starts to occur again and again, we'll probably have to ask Dynamic Tools folks to looks into that, unless someone else finds a way to fix it upstream.
,
Apr 25 2018
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/197d52949eeddc338d9e7315dc8f07de37eb90b8 commit 197d52949eeddc338d9e7315dc8f07de37eb90b8 Author: Geoff Lang <geofflang@chromium.org> Date: Wed Apr 25 22:25:24 2018 Wrap all preprocessor code in the angle namespace. BUG= 836820 BUG= 801364 Change-Id: I08b6a2f9f12b689e09df6efd916c313e71e8a051 Reviewed-on: https://chromium-review.googlesource.com/1028581 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/Diagnostics.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/SourceLocation.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/glslang.l [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/ExpressionParser.y [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Preprocessor.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/pragma_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DirectiveHandlerBase.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/MacroExpander.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/space_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/extension_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/error_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/ExpressionParser.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/DirectiveHandler.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Lexer.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Tokenizer.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/MacroExpander.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Tokenizer.l [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/input_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DirectiveParser.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/glslang_lex.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/define_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Token.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Macro.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/location_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DirectiveHandlerBase.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/char_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Tokenizer.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/ExpressionParser.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/operator_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/MockDirectiveHandler.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/numeric_lex.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/identifier_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DirectiveParser.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DiagnosticsBase.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/Diagnostics.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/number_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/PreprocessorTest.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Lexer.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Input.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/token_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Macro.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Preprocessor.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/DirectiveHandler.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Input.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/if_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/MockDiagnostics.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/util.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/version_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/ParseContext.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/translator/ParseContext.h [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/comment_test.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/DiagnosticsBase.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/compiler/preprocessor/Token.cpp [modify] https://crrev.com/197d52949eeddc338d9e7315dc8f07de37eb90b8/src/tests/preprocessor_tests/PreprocessorTest.cpp
,
Apr 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/158cb3e2476795076977c6641e5791dff33e6c1e commit 158cb3e2476795076977c6641e5791dff33e6c1e Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Date: Thu Apr 26 05:44:43 2018 Roll src/third_party/angle/ 23dc90b81..197d52949 (1 commit) https://chromium.googlesource.com/angle/angle.git/+log/23dc90b81efb..197d52949eed $ git log 23dc90b81..197d52949 --date=short --no-merges --format='%ad %ae %s' 2018-04-25 geofflang Wrap all preprocessor code in the angle namespace. Created with: roll-dep src/third_party/angle BUG= chromium:836820 , chromium:801364 The AutoRoll server is located here: https://angle-chromium-roll.skia.org Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel TBR=geofflang@chromium.org Change-Id: I4e73dc6ca51b5b8863fbcd0b266f8cd1a5df2500 Reviewed-on: https://chromium-review.googlesource.com/1029194 Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#553928} [modify] https://crrev.com/158cb3e2476795076977c6641e5791dff33e6c1e/DEPS
,
Apr 27 2018
I don't see any warnings when merging dumps now, and the coverage numbers look better than they ever did! So awesome! |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by mmoroz@chromium.org
, Jan 11 2018