Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pre-build glib-2.0 libraries with TSAN enabled #23519

Merged
merged 1 commit into from
Nov 8, 2022

Conversation

arkq
Copy link
Contributor

@arkq arkq commented Nov 7, 2022

Problem

Testing application with TSAN requires all shared libraries to be compiled with TSAN as well. Otherwise, one can get lots of false positive reports. The case is most prominent with glib-2.0 which has lots of threads-related APIs.

From TSAN wiki:

TSAN generally requires all code to be compiled with -fsanitize=thread. If some code (e.g. dynamic libraries) is not compiled with the flag, it can lead to false positive race reports, false negative race reports and/or missed stack frames in reports depending on the nature of non-instrumented code.

Related with #14710

There will be a follow-up PR for CI changes.

Changes

Add glib-2.0 with TSAN enabled to chip-build Docker image and place them in the location defined in LD_LIBRARY_PATH_TSAN env variable. When testing CHIP apps with TSAN one can add LD_LIBRARY_PATH_TSAN to LD_LIBRARY_PATH.

Testing

# This shows lots of false positive TSAN warnings
out/linux-x64-lock-tsan/chip-lock-app

# This does not show any false positive warnings
LD_LIBRARY_PATH=$LD_LIBRARY_PATH_TSAN out/linux-x64-lock-tsan/chip-lock-app

@github-actions
Copy link

github-actions bot commented Nov 7, 2022

PR #23519: Size comparison from 57faaef to 3bca33b

Increases (10 builds for bl702, cc13x2_26x2, esp32, k32w, psoc6, telink)
platform target config section 57faaef 3bca33b change % change
bl702 lighting-app bl702 .debug_info 38074142 38074143 1 0.0
.text 957110 957112 2 0.0
bl702+rpc (read/write) 1284107 1284123 16 0.0
.debug_info 41991385 4199138 1 0.0
.text 1030816 1030818 2 0.0
cc13x2_26x2 pump-app LP_CC2652R7 (read/write) 160784 160792 8 0.0
esp32 all-clusters-app c3devkit (read/write) 1788518 1788526 8 0.0
.flash.rodata 258088 258096 8 0.0
m5stack (read/write) 564332 564340 8 0.0
.flash.rodata 315048 315056 8 0.0
k32w light k32w0+release (read/write) 671272 671288 16 0.0
.text 591660 591676 16 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 27023695 27023696 1 0.0
all-clusters-minimal cy8ckit_062s2_43012 .debug_info 26760325 26760326 1 0.0
telink all-clusters-app tlsr9518adk80d text 648602 648604 2 0.0
ota-requestor-app tlsr9518adk80d text 565482 565484 2 0.0
Decreases (5 builds for bl602, cc13x2_26x2, esp32, telink)
platform target config section 57faaef 3bca33b change % change
bl602 lighting-app bl602 .text 1068756 1068754 -2 -0.0
bl602+rpc .text 1100360 1100358 -2 -0.0
cc13x2_26x2 pump-app LP_CC2652R7 (read only) 688631 688623 -8 -0.0
.text 597588 597580 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1224242 1224240 -2 -0.0
.flash.text 1224242 1224240 -2 -0.0
telink light-switch-app tlsr9518adk80d text 554104 554102 -2 -0.0
Full report (40 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 57faaef 3bca33b change % change
bl602 lighting-app bl602 (read/write) 1388982 1388982 0 0.0
.bss 90729 90729 0 0.0
.data 9936 9936 0 0.0
.text 1068756 1068754 -2 -0.0
bl602+rpc (read/write) 1434430 1434430 0 0.0
.bss 98161 98161 0 0.0
.data 10320 10320 0 0.0
.text 1100360 1100358 -2 -0.0
bl702 lighting-app bl702 (read only) 3262 3262 0 0.0
(read/write) 1188179 1188179 0 0.0
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 67126 67126 0 0.0
.bss_psram 29696 29696 0 0.0
.comment 48 48 0 0.0
.data 4280 4280 0 0.0
.debug_abbrev 1514432 1514432 0 0.0
.debug_aranges 132032 132032 0 0.0
.debug_frame 484600 484600 0 0.0
.debug_info 38074142 38074143 1 0.0
.debug_line 5271016 5271016 0 0.0
.debug_loc 3373259 3373259 0 0.0
.debug_ranges 359736 359736 0 0.0
.debug_str 3447472 3447472 0 0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 144 144 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 116152 116152 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 565752 565752 0 0.0
.symtab 171984 171984 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
957110 957112 2 0.0
bl702+rpc (read only) 3262 3262 0 0.0
(read/write) 1284107 1284123 16 0.0
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 75158 75158 0 0.0
.bss_psram 29936 29936 0 0.0
.comment 48 48 0 0.0
.data 4816 4816 0 0.0
.debug_abbrev 1651848 1651848 0 0.0
.debug_aranges 139536 139536 0 0.0
.debug_frame 509972 509972 0 0.0
.debug_info 41991385 4199138 1 0.0
.debug_line 5647163 5647163 0 0.0
.debug_loc 3566043 3566043 0 0.0
.debug_ranges 382536 382536 0 0.0
.debug_str 3843622 3843622 0 0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 160 160 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 129560 129560 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 624925 624925 0 0.0
.symtab 189792 189792 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
1030816 1030818 2 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 677403 677403 0 0.0
(read/write) 174140 174140 0 0.0
.bss 81236 81236 0 0.0
.data 3380 3380 0 0.0
.rodata 89547 89547 0 0.0
.text 587544 587544 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 641667 641667 0 0.0
(read/write) 158004 158004 0 0.0
.bss 80508 80508 0 0.0
.data 3380 3380 0 0.0
.rodata 78683 78683 0 0.0
.text 562664 562664 0 0.0
lock-ftd LP_CC2652R7 (read only) 676167 676167 0 0.0
(read/write) 172512 172512 0 0.0
.bss 78460 78460 0 0.0
.data 3304 3304 0 0.0
.rodata 77071 77071 0 0.0
.text 598616 598616 0 0.0
lock-mtd LP_CC2652R7 (read only) 659955 659955 0 0.0
(read/write) 184412 184412 0 0.0
.bss 74148 74148 0 0.0
.data 3304 3304 0 0.0
.rodata 102923 102923 0 0.0
.text 556552 556552 0 0.0
pump-app LP_CC2652R7 (read only) 688631 688623 -8 -0.0
(read/write) 160784 160792 8 0.0
.bss 78428 78428 0 0.0
.data 3296 3296 0 0.0
.rodata 90559 90559 0 0.0
.text 597588 597580 -8 -0.0
pump-controller-app LP_CC2652R7 (read only) 672915 672915 0 0.0
(read/write) 176596 176596 0 0.0
.bss 78524 78524 0 0.0
.data 3292 3292 0 0.0
.rodata 86107 86107 0 0.0
.text 586328 586328 0 0.0
shell LP_CC2652R7 (read only) 668638 668638 0 0.0
(read/write) 185224 185224 0 0.0
.bss 83556 83556 0 0.0
.data 3376 3376 0 0.0
.rodata 86294 86294 0 0.0
.text 582028 582028 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 586814 586814 0 0.0
.app_xip_area 463424 463424 0 0.0
.bss 65808 65808 0 0.0
.data 728 728 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 590870 590870 0 0.0
.app_xip_area 462184 462184 0 0.0
.bss 71096 71096 0 0.0
.data 736 736 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 543034 543034 0 0.0
.app_xip_area 424716 424716 0 0.0
.bss 60776 60776 0 0.0
.data 684 684 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rpc (read/write) 974252 974252 0 0.0
.bss 152260 152260 0 0.0
.data 2248 2248 0 0.0
.text 819724 819724 0 0.0
BRD4161A+rs911x (read/write) 1034800 1034800 0 0.0
.bss 186728 186728 0 0.0
.data 2092 2092 0 0.0
.text 845956 845956 0 0.0
BRD4187C (read/write) 1146632 1146632 0 0.0
.bss 138648 138648 0 0.0
.data 2596 2596 0 0.0
.text 980792 980792 0 0.0
lock-app BRD4161A+wf200 (read/write) 1160088 1160088 0 0.0
.bss 158256 158256 0 0.0
.data 2100 2100 0 0.0
.text 999708 999708 0 0.0
window-app BRD4187C (read/write) 1139852 1139852 0 0.0
.bss 140064 140064 0 0.0
.data 2620 2620 0 0.0
.text 972572 972572 0 0.0
esp32 all-clusters-app c3devkit (read only) 1224242 1224240 -2 -0.0
(read/write) 1788518 1788526 8 0.0
.dram0.bss 76944 76944 0 0.0
.dram0.data 13840 13840 0 0.0
.flash.rodata 258088 258096 8 0.0
.flash.text 1224242 1224240 -2 -0.0
.iram0.text 65204 65204 0 0.0
m5stack (read only) 1234123 1234123 0 0.0
(read/write) 564332 564340 8 0.0
.dram0.bss 82320 82320 0 0.0
.dram0.data 34296 34296 0 0.0
.flash.rodata 315048 315056 8 0.0
.flash.text 1228739 1228739 0 0.0
.iram0.text 123939 123939 0 0.0
k32w contact k32w0+release (read/write) 661244 661244 0 0.0
.bss 77024 77024 0 0.0
.data 2104 2104 0 0.0
.text 563004 563004 0 0.0
light k32w0+release (read/write) 671272 671288 16 0.0
.bss 74824 74824 0 0.0
.data 2060 2060 0 0.0
.text 591660 591676 16 0.0
lock k32w0+release (read/write) 632764 632764 0 0.0
.bss 75584 75584 0 0.0
.data 2080 2080 0 0.0
.text 552372 552372 0 0.0
linux chip-tool-ipv6only arm64 (read only) 10433484 10433484 0 0.0
(read/write) 706337 706337 0 0.0
.bss 33905 33905 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 650672 650672 0 0.0
.dynamic 560 560 0 0.0
.got 13912 13912 0 0.0
.init 24 24 0 0.0
.init_array 208 208 0 0.0
.rodata 518220 518220 0 0.0
.text 8259988 8259988 0 0.0
thermostat-no-ble arm64 (read only) 2392092 2392092 0 0.0
(read/write) 143777 143777 0 0.0
.bss 55393 55393 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 77328 77328 0 0.0
.dynamic 560 560 0 0.0
.got 5176 5176 0 0.0
.init 24 24 0 0.0
.init_array 440 440 0 0.0
.rodata 144724 144724 0 0.0
.text 2004000 2004000 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2452192 2452192 0 0.0
.bss 215012 215012 0 0.0
.data 5872 5872 0 0.0
.text 1414836 1414836 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1187759 1187759 0 0.0
bss 145285 145285 0 0.0
rodata 144436 144436 0 0.0
text 816956 816956 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1167107 1167107 0 0.0
bss 144512 144512 0 0.0
rodata 136224 136224 0 0.0
text 805446 805446 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 841968 841968 0 0.0
(read/write) 1746028 1746028 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188712 188712 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1235716 1235716 0 0.0
.debug_aranges 110704 110704 0 0.0
.debug_frame 371280 371280 0 0.0
.debug_info 27023695 27023696 1 0.0
.debug_line 3685729 3685729 0 0.0
.debug_loc 3603426 3603426 0 0.0
.debug_ranges 339528 339528 0 0.0
.debug_str 3431145 3431145 0 0.0
.heap 841968 841968 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 570258 570258 0 0.0
.symtab 421424 421424 0 0.0
.text 1546264 1546264 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 842704 842704 0 0.0
(read/write) 1688628 1688628 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187976 187976 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1227559 1227559 0 0.0
.debug_aranges 110176 110176 0 0.0
.debug_frame 374360 374360 0 0.0
.debug_info 26760325 26760326 1 0.0
.debug_line 3706713 3706713 0 0.0
.debug_loc 3591063 3591063 0 0.0
.debug_ranges 338144 338144 0 0.0
.debug_str 3420165 3420165 0 0.0
.heap 842704 842704 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 534347 534347 0 0.0
.symtab 407856 407856 0 0.0
.text 1489600 1489600 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 850888 850888 0 0.0
(read/write) 1606956 1606956 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 180000 180000 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2456 2456 0 0.0
.debug_abbrev 1062020 1062020 0 0.0
.debug_aranges 102376 102376 0 0.0
.debug_frame 344676 344676 0 0.0
.debug_info 22225736 22225736 0 0.0
.debug_line 3276055 3276055 0 0.0
.debug_loc 3288807 3288807 0 0.0
.debug_ranges 303440 303440 0 0.0
.debug_str 3225600 3225600 0 0.0
.heap 850888 850888 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 470672 470672 0 0.0
.symtab 376240 376240 0 0.0
.text 1416112 1416112 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 845896 845896 0 0.0
(read/write) 1640732 1640732 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 184976 184976 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2472 2472 0 0.0
.debug_abbrev 1063995 1063995 0 0.0
.debug_aranges 102776 102776 0 0.0
.debug_frame 346548 346548 0 0.0
.debug_info 22459150 22459150 0 0.0
.debug_line 3272949 3272949 0 0.0
.debug_loc 3316401 3316401 0 0.0
.debug_ranges 305384 305384 0 0.0
.debug_str 3245071 3245071 0 0.0
.heap 845896 845896 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 473075 473075 0 0.0
.symtab 377920 377920 0 0.0
.text 1444896 1444896 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1149560 1149560 0 0.0
.bss 110596 110596 0 0.0
.data 848 848 0 0.0
.text 596660 596660 0 0.0
lock-app qpg6105+debug (read/write) 1114352 1114352 0 0.0
.bss 106372 106372 0 0.0
.data 836 836 0 0.0
.text 561448 561448 0 0.0
telink all-clusters-app tlsr9518adk80d (read/write) 936764 936764 0 0.0
bss 81616 81616 0 0.0
noinit 43440 43440 0 0.0
text 648602 648604 2 0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 874748 874748 0 0.0
bss 80840 80840 0 0.0
noinit 43440 43440 0 0.0
text 612574 612574 0 0.0
light-switch-app tlsr9518adk80d (read/write) 790244 790244 0 0.0
bss 72464 72464 0 0.0
noinit 43520 43520 0 0.0
text 554104 554102 -2 -0.0
lighting-app tlsr9518adk80d (read/write) 874460 874460 0 0.0
bss 82232 82232 0 0.0
noinit 43520 43520 0 0.0
text 624080 624080 0 0.0
ota-requestor-app tlsr9518adk80d (read/write) 804736 804736 0 0.0
bss 74036 74036 0 0.0
noinit 43520 43520 0 0.0
text 565482 565484 2 0.0

@andy31415 andy31415 merged commit cdfcf24 into project-chip:master Nov 8, 2022
@arkq arkq deleted the ci-tsan branch November 8, 2022 15:15
adbridge pushed a commit to ARM-software/connectedhomeip that referenced this pull request Nov 18, 2022
adbridge pushed a commit to ARM-software/connectedhomeip that referenced this pull request Nov 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants