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

Handle nullable attributes in TLV-to-attr-store interactions and Accessors #11665

Merged

Conversation

bzbarsky-apple
Copy link
Contributor

@bzbarsky-apple bzbarsky-apple commented Nov 11, 2021

Reviewer note: Reviewing the commits separately may be a good idea. The two commits with substantive changes have long commit messages explaining them.

Problem

Nullable attributes not getting encoded as null on the wire when read and not allowing that encoding when written.

Change overview

Implement null handling for TLV and Accessors getters/setters.

Testing

New unit tests added.

@github-actions
Copy link

github-actions bot commented Nov 11, 2021

PR #11665: Size comparison from 4374a54 to 08a144f

Increases above 0.2%:

platform target config section 4374a54 08a144f change % change
linux all-clusters-app debug (read only) 1699113 1707945 8832 0.5
(read/write) 125856 126368 512 0.4
.data.rel.ro 62256 62672 416 0.7
.text 1426498 1434978 8480 0.6
bridge-app debug+rpc (read only) 1298741 1303893 5152 0.4
.text 1091365 1096421 5056 0.5
chip-tool debug (read only) 4908365 5161893 253528 5.2
(read/write) 154120 157384 3264 2.1
.data.rel.ro 105312 108560 3248 3.1
.rodata 255946 264458 8512 3.3
.text 4372245 4609701 237456 5.4
lighting-app debug+rpc (read only) 1565401 1573369 7968 0.5
.text 1302322 1310194 7872 0.6
ota-provider-app debug (read only) 1260153 1264601 4448 0.4
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345225 1349673 4448 0.3
.text 1122114 1126466 4352 0.4
tv-app debug (read only) 1843097 1848457 5360 0.3
.text 1542802 1548034 5232 0.3
telink lighting-app tlsr9518adk80d text 459996 461284 1288 0.3
Increases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 4374a54 08a144f change % change
efr32 lighting-app BRD4161A (read only) 745240 746504 1264 0.2
.text 745232 746496 1264 0.2
BRD4161A+rpc (read only) 732788 734036 1248 0.2
.text 732780 734028 1248 0.2
lock-app BRD4161A (read only) 722064 723136 1072 0.1
.text 722056 723128 1072 0.1
window-app BRD4161A (read only) 722992 724144 1152 0.2
.text 722984 724136 1152 0.2
esp32 all-clusters-app c3devkit (read only) 821852 823122 1270 0.2
(read/write) 1221906 1222298 392 0.0
.dram0.bss 55832 55904 72 0.1
.flash.rodata 166728 167056 328 0.2
.flash.text 821852 823122 1270 0.2
m5stack (read only) 892951 894135 1184 0.1
(read/write) 420080 420480 400 0.1
.dram0.bss 60920 60992 72 0.1
.flash.rodata 193780 194108 328 0.2
.flash.text 887567 888751 1184 0.1
k32w lighting-app k32w061+se05x+release (read/write) 700424 701192 768 0.1
.text 615240 616008 768 0.1
lock-app k32w061+debug (read/write) 591644 592220 576 0.1
.text 515972 516548 576 0.1
shell k32w061+debug (read/write) 657324 657900 576 0.1
.text 570892 571468 576 0.1
linux all-clusters-app debug (read only) 1699113 1707945 8832 0.5
(read/write) 125856 126368 512 0.4
.bss 57328 57424 96 0.2
.data.rel.ro 62256 62672 416 0.7
.rodata 139125 139285 160 0.1
.text 1426498 1434978 8480 0.6
bridge-app debug+rpc (read only) 1298741 1303893 5152 0.4
.rodata 110932 111028 96 0.1
.text 1091365 1096421 5056 0.5
chip-tool debug (read only) 4908365 5161893 253528 5.2
(read/write) 154120 157384 3264 2.1
.data.rel.ro 105312 108560 3248 3.1
.rodata 255946 264458 8512 3.3
.text 4372245 4609701 237456 5.4
lighting-app debug+rpc (read only) 1565401 1573369 7968 0.5
.rodata 128849 128945 96 0.1
.text 1302322 1310194 7872 0.6
ota-provider-app debug (read only) 1260153 1264601 4448 0.4
.rodata 112647 112743 96 0.1
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345225 1349673 4448 0.3
.rodata 123760 123856 96 0.1
.text 1122114 1126466 4352 0.4
tv-app debug (read only) 1843097 1848457 5360 0.3
.rodata 155821 155949 128 0.1
.text 1542802 1548034 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2289256 2290424 1168 0.1
.bss 179412 179492 80 0.0
.text 1251856 1253024 1168 0.1
lighting-app CY8CPROTO_062_4343W+release (read/write) 2272728 2273496 768 0.0
.text 1235328 1236096 768 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2248352 2248928 576 0.0
.text 1210952 1211528 576 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 862919 863847 928 0.1
text 579516 580440 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825307 826223 916 0.1
bss 107284 107288 4 0.0
rodata 88044 88048 4 0.0
text 553688 554612 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 787974 788890 916 0.1
bss 112304 112308 4 0.0
rodata 92112 92116 4 0.0
text 508984 509908 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838151 838871 720 0.1
text 559816 560540 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763450 764186 736 0.1
text 489376 490100 724 0.1
pump-app nrf52840dk_nrf52840 (read/write) 844247 844983 736 0.1
text 563980 564724 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838007 838575 568 0.1
text 559552 560160 608 0.1
p6 all-clusters-app default (read/write) 2297144 2298776 1632 0.1
.bss 112416 112488 72 0.1
.text 1255408 1257040 1632 0.1
lock-app default (read/write) 2211752 2212824 1072 0.0
.text 1170016 1171088 1072 0.1
qpg lighting-app qpg6100+debug (read only) 492240 493088 848 0.2
.text 486920 487768 848 0.2
lock-app qpg6100+debug (read only) 466976 467616 640 0.1
.text 461656 462296 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 665114 666402 1288 0.2
text 459996 461284 1288 0.3
Decreases (3 builds for mbed, nrfconnect, p6)
platform target config section 4374a54 08a144f change % change
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 851816 851736 -80 -0.0
nrfconnect pump-controller-app nrf52840dk_nrf52840 rodata 92920 92880 -40 -0.0
p6 all-clusters-app default .heap 918408 918336 -72 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 4374a54 08a144f change % change
efr32 lighting-app BRD4161A (read only) 745240 746504 1264 0.2
(read/write) 115764 115764 0 0.0
.bss 113980 113980 0 0.0
.data 1784 1784 0 0.0
.text 745232 746496 1264 0.2
BRD4161A+rpc (read only) 732788 734036 1248 0.2
(read/write) 132392 132392 0 0.0
.bss 130484 130484 0 0.0
.data 1908 1908 0 0.0
.text 732780 734028 1248 0.2
lock-app BRD4161A (read only) 722064 723136 1072 0.1
(read/write) 113548 113548 0 0.0
.bss 111804 111804 0 0.0
.data 1740 1740 0 0.0
.text 722056 723128 1072 0.1
window-app BRD4161A (read only) 722992 724144 1152 0.2
(read/write) 113868 113868 0 0.0
.bss 112124 112124 0 0.0
.data 1744 1744 0 0.0
.text 722984 724136 1152 0.2
esp32 all-clusters-app c3devkit (read only) 821852 823122 1270 0.2
(read/write) 1221906 1222298 392 0.0
.dram0.bss 55832 55904 72 0.1
.dram0.data 14092 14092 0 0.0
.flash.rodata 166728 167056 328 0.2
.flash.text 821852 823122 1270 0.2
.iram0.text 61394 61394 0 0.0
m5stack (read only) 892951 894135 1184 0.1
(read/write) 420080 420480 400 0.1
.dram0.bss 60920 60992 72 0.1
.dram0.data 34056 34056 0 0.0
.flash.rodata 193780 194108 328 0.2
.flash.text 887567 888751 1184 0.1
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 700424 701192 768 0.1
.bss 77476 77476 0 0.0
.data 1908 1908 0 0.0
.text 615240 616008 768 0.1
lock-app k32w061+debug (read/write) 591644 592220 576 0.1
.bss 67996 67996 0 0.0
.data 1876 1876 0 0.0
.text 515972 516548 576 0.1
shell k32w061+debug (read/write) 657324 657900 576 0.1
.bss 78788 78788 0 0.0
.data 1844 1844 0 0.0
.text 570892 571468 576 0.1
linux all-clusters-app debug (read only) 1699113 1707945 8832 0.5
(read/write) 125856 126368 512 0.4
.bss 57328 57424 96 0.2
.data 1010 1010 0 0.0
.data.rel.ro 62256 62672 416 0.7
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 139125 139285 160 0.1
.text 1426498 1434978 8480 0.6
bridge-app debug+rpc (read only) 1298741 1303893 5152 0.4
(read/write) 77264 77264 0 0.0
.bss 42800 42800 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27928 27928 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 110932 111028 96 0.1
.text 1091365 1096421 5056 0.5
chip-tool debug (read only) 4908365 5161893 253528 5.2
(read/write) 154120 157384 3264 2.1
.bss 41096 41096 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 105312 108560 3248 3.1
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 255946 264458 8512 3.3
.text 4372245 4609701 237456 5.4
lighting-app debug+rpc (read only) 1565401 1573369 7968 0.5
(read/write) 109936 109936 0 0.0
.bss 47984 47984 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55456 55456 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 128849 128945 96 0.1
.text 1302322 1310194 7872 0.6
ota-provider-app debug (read only) 1260153 1264601 4448 0.4
(read/write) 75048 75048 0 0.0
.bss 44416 44416 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24776 24776 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 112647 112743 96 0.1
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345225 1349673 4448 0.3
(read/write) 78816 78816 0 0.0
.bss 46880 46880 0 0.0
.data 816 816 0 0.0
.data.rel.ro 26040 26040 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123760 123856 96 0.1
.text 1122114 1126466 4352 0.4
shell debug (read only) 788665 788665 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 77615 77615 0 0.0
.text 609154 609154 0 0.0
tv-app debug (read only) 1843097 1848457 5360 0.3
(read/write) 407640 407640 0 0.0
.bss 339656 339656 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59600 59600 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 155821 155949 128 0.1
.text 1542802 1548034 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2289256 2290424 1168 0.1
.bss 179412 179492 80 0.0
.data 5216 5216 0 0.0
.heap 851816 851736 -80 -0.0
.text 1251856 1253024 1168 0.1
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272728 2273496 768 0.0
.bss 172524 172524 0 0.0
.data 5576 5576 0 0.0
.heap 858344 858344 0 0.0
.text 1235328 1236096 768 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2248352 2248928 576 0.0
.bss 171404 171404 0 0.0
.data 5568 5568 0 0.0
.heap 859472 859472 0 0.0
.text 1210952 1211528 576 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 862919 863847 928 0.1
bss 110932 110932 0 0.0
rodata 96856 96856 0 0.0
text 579516 580440 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825307 826223 916 0.1
bss 107284 107288 4 0.0
rodata 88044 88048 4 0.0
text 553688 554612 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 787974 788890 916 0.1
bss 112304 112308 4 0.0
rodata 92112 92116 4 0.0
text 508984 509908 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838151 838871 720 0.1
bss 109956 109956 0 0.0
rodata 92920 92920 0 0.0
text 559816 560540 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763450 764186 736 0.1
bss 111368 111368 0 0.0
rodata 88228 88228 0 0.0
text 489376 490100 724 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844247 844983 736 0.1
bss 110096 110096 0 0.0
rodata 94632 94632 0 0.0
text 563980 564724 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838007 838575 568 0.1
bss 109992 109992 0 0.0
rodata 92920 92880 -40 -0.0
text 559552 560160 608 0.1
shell nrf52840dk_nrf52840 (read/write) 775483 775483 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520008 520008 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690538 690538 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440616 440616 0 0.0
p6 all-clusters-app default (read/write) 2297144 2298776 1632 0.1
.bss 112416 112488 72 0.1
.data 2520 2520 0 0.0
.heap 918408 918336 -72 -0.0
.text 1255408 1257040 1632 0.1
lock-app default (read/write) 2211752 2212824 1072 0.0
.bss 101264 101264 0 0.0
.data 2400 2400 0 0.0
.heap 929680 929680 0 0.0
.text 1170016 1171088 1072 0.1
qpg lighting-app qpg6100+debug (read only) 492240 493088 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50624 50624 0 0.0
.data 1008 1008 0 0.0
.text 486920 487768 848 0.2
lock-app qpg6100+debug (read only) 466976 467616 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49560 49560 0 0.0
.data 964 964 0 0.0
.text 461656 462296 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 665114 666402 1288 0.2
bss 69304 69304 0 0.0
noinit 33216 33216 0 0.0
text 459996 461284 1288 0.3

@github-actions
Copy link

github-actions bot commented Nov 11, 2021

PR #11665: Size comparison from 4ae5f21 to 67c2697

Increases above 0.2%:

platform target config section 4ae5f21 67c2697 change % change
telink lighting-app tlsr9518adk80d text 460046 461334 1288 0.3
Increases (6 builds for k32w, qpg, telink)
platform target config section 4ae5f21 67c2697 change % change
k32w lighting-app k32w061+se05x+release (read/write) 700508 701292 784 0.1
.text 615324 616108 784 0.1
lock-app k32w061+debug (read/write) 591728 592320 592 0.1
.text 516056 516648 592 0.1
shell k32w061+debug (read/write) 657408 657984 576 0.1
.text 570976 571552 576 0.1
qpg lighting-app qpg6100+debug (read only) 492324 493172 848 0.2
.text 487004 487852 848 0.2
lock-app qpg6100+debug (read only) 467060 467700 640 0.1
.text 461740 462380 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 665202 666490 1288 0.2
text 460046 461334 1288 0.3
Full report (7 builds for k32w, qpg, telink)
platform target config section 4ae5f21 67c2697 change % change
k32w lighting-app k32w061+se05x+release (read/write) 700508 701292 784 0.1
.bss 77476 77476 0 0.0
.data 1908 1908 0 0.0
.text 615324 616108 784 0.1
lock-app k32w061+debug (read/write) 591728 592320 592 0.1
.bss 67996 67996 0 0.0
.data 1876 1876 0 0.0
.text 516056 516648 592 0.1
shell k32w061+debug (read/write) 657408 657984 576 0.1
.bss 78788 78788 0 0.0
.data 1844 1844 0 0.0
.text 570976 571552 576 0.1
qpg lighting-app qpg6100+debug (read only) 492324 493172 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50624 50624 0 0.0
.data 1008 1008 0 0.0
.text 487004 487852 848 0.2
lock-app qpg6100+debug (read only) 467060 467700 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49560 49560 0 0.0
.data 964 964 0 0.0
.text 461740 462380 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 665202 666490 1288 0.2
bss 69304 69304 0 0.0
noinit 33216 33216 0 0.0
text 460046 461334 1288 0.3

@github-actions
Copy link

github-actions bot commented Nov 12, 2021

PR #11665: Size comparison from 14eaa07 to 7d06f77

Increases above 0.2%:

platform target config section 14eaa07 7d06f77 change % change
esp32 all-clusters-app c3devkit .flash.rodata 166760 167096 336 0.2
linux all-clusters-app debug (read only) 1701033 1709865 8832 0.5
(read/write) 125856 126368 512 0.4
.data.rel.ro 62256 62672 416 0.7
.text 1428066 1436546 8480 0.6
bridge-app debug+rpc (read only) 1300629 1305797 5168 0.4
.text 1092933 1098005 5072 0.5
chip-tool debug (read only) 4556205 4810117 253912 5.6
(read/write) 163688 166920 3232 2.0
.data.rel.ro 114864 118112 3248 2.8
.rodata 258122 266634 8512 3.3
.text 3997317 4235157 237840 5.9
lighting-app debug+rpc (read only) 1567289 1575257 7968 0.5
.text 1303890 1311762 7872 0.6
ota-provider-app debug (read only) 1260345 1264793 4448 0.4
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345129 1349593 4464 0.3
.text 1122114 1126482 4368 0.4
tv-app debug (read only) 1845017 1850345 5328 0.3
.text 1544370 1549602 5232 0.3
telink lighting-app tlsr9518adk80d text 460046 461334 1288 0.3
Increases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 14eaa07 7d06f77 change % change
efr32 lighting-app BRD4161A (read only) 745392 746656 1264 0.2
.text 745384 746648 1264 0.2
BRD4161A+rpc (read only) 732916 734180 1264 0.2
.text 732908 734172 1264 0.2
lock-app BRD4161A (read only) 722208 723280 1072 0.1
.text 722200 723272 1072 0.1
window-app BRD4161A (read only) 723136 724288 1152 0.2
.text 723128 724280 1152 0.2
esp32 all-clusters-app c3devkit (read only) 821900 823170 1270 0.2
(read/write) 1221938 1222338 400 0.0
.dram0.bss 55832 55904 72 0.1
.flash.rodata 166760 167096 336 0.2
.flash.text 821900 823170 1270 0.2
m5stack (read only) 892991 894171 1180 0.1
(read/write) 420112 420512 400 0.1
.dram0.bss 60920 60992 72 0.1
.flash.rodata 193812 194140 328 0.2
.flash.text 887607 888787 1180 0.1
k32w lighting-app k32w061+se05x+release (read/write) 700508 701292 784 0.1
.text 615324 616108 784 0.1
lock-app k32w061+debug (read/write) 591728 592320 592 0.1
.text 516056 516648 592 0.1
shell k32w061+debug (read/write) 657408 657984 576 0.1
.text 570976 571552 576 0.1
linux all-clusters-app debug (read only) 1701033 1709865 8832 0.5
(read/write) 125856 126368 512 0.4
.bss 57328 57424 96 0.2
.data.rel.ro 62256 62672 416 0.7
.rodata 139477 139637 160 0.1
.text 1428066 1436546 8480 0.6
bridge-app debug+rpc (read only) 1300629 1305797 5168 0.4
.rodata 111252 111348 96 0.1
.text 1092933 1098005 5072 0.5
chip-tool debug (read only) 4556205 4810117 253912 5.6
(read/write) 163688 166920 3232 2.0
.data.rel.ro 114864 118112 3248 2.8
.rodata 258122 266634 8512 3.3
.text 3997317 4235157 237840 5.9
lighting-app debug+rpc (read only) 1567289 1575257 7968 0.5
.rodata 129169 129265 96 0.1
.text 1303890 1311762 7872 0.6
ota-provider-app debug (read only) 1260345 1264793 4448 0.4
.rodata 112839 112935 96 0.1
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345129 1349593 4464 0.3
.rodata 123664 123760 96 0.1
.text 1122114 1126482 4368 0.4
tv-app debug (read only) 1845017 1850345 5328 0.3
.rodata 156173 156269 96 0.1
.text 1544370 1549602 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2289352 2290520 1168 0.1
.bss 179412 179492 80 0.0
.text 1251952 1253120 1168 0.1
lighting-app CY8CPROTO_062_4343W+release (read/write) 2272824 2273592 768 0.0
.text 1235424 1236192 768 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2248448 2249024 576 0.0
.text 1211048 1211624 576 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 863015 863927 912 0.1
text 579568 580492 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825391 826319 928 0.1
bss 107284 107288 4 0.0
text 553740 554664 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 788058 788986 928 0.1
bss 112304 112308 4 0.0
text 509036 509960 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838235 838955 720 0.1
text 559868 560592 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763546 764266 720 0.1
text 489428 490152 724 0.1
pump-app nrf52840dk_nrf52840 (read/write) 844327 845079 752 0.1
text 564032 564776 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838087 838655 568 0.1
text 559604 560212 608 0.1
p6 all-clusters-app default (read/write) 2297296 2298920 1624 0.1
.bss 112416 112488 72 0.1
.text 1255560 1257184 1624 0.1
lock-app default (read/write) 2211896 2212968 1072 0.0
.text 1170160 1171232 1072 0.1
qpg lighting-app qpg6100+debug (read only) 492324 493172 848 0.2
.text 487004 487852 848 0.2
lock-app qpg6100+debug (read only) 467060 467700 640 0.1
.text 461740 462380 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 665202 666490 1288 0.2
text 460046 461334 1288 0.3
Decreases (3 builds for mbed, nrfconnect, p6)
platform target config section 14eaa07 7d06f77 change % change
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 851816 851736 -80 -0.0
nrfconnect pump-controller-app nrf52840dk_nrf52840 rodata 92952 92912 -40 -0.0
p6 all-clusters-app default .heap 918408 918336 -72 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 14eaa07 7d06f77 change % change
efr32 lighting-app BRD4161A (read only) 745392 746656 1264 0.2
(read/write) 115764 115764 0 0.0
.bss 113980 113980 0 0.0
.data 1784 1784 0 0.0
.text 745384 746648 1264 0.2
BRD4161A+rpc (read only) 732916 734180 1264 0.2
(read/write) 132392 132392 0 0.0
.bss 130484 130484 0 0.0
.data 1908 1908 0 0.0
.text 732908 734172 1264 0.2
lock-app BRD4161A (read only) 722208 723280 1072 0.1
(read/write) 113548 113548 0 0.0
.bss 111804 111804 0 0.0
.data 1740 1740 0 0.0
.text 722200 723272 1072 0.1
window-app BRD4161A (read only) 723136 724288 1152 0.2
(read/write) 113868 113868 0 0.0
.bss 112124 112124 0 0.0
.data 1744 1744 0 0.0
.text 723128 724280 1152 0.2
esp32 all-clusters-app c3devkit (read only) 821900 823170 1270 0.2
(read/write) 1221938 1222338 400 0.0
.dram0.bss 55832 55904 72 0.1
.dram0.data 14092 14092 0 0.0
.flash.rodata 166760 167096 336 0.2
.flash.text 821900 823170 1270 0.2
.iram0.text 61394 61394 0 0.0
m5stack (read only) 892991 894171 1180 0.1
(read/write) 420112 420512 400 0.1
.dram0.bss 60920 60992 72 0.1
.dram0.data 34056 34056 0 0.0
.flash.rodata 193812 194140 328 0.2
.flash.text 887607 888787 1180 0.1
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 700508 701292 784 0.1
.bss 77476 77476 0 0.0
.data 1908 1908 0 0.0
.text 615324 616108 784 0.1
lock-app k32w061+debug (read/write) 591728 592320 592 0.1
.bss 67996 67996 0 0.0
.data 1876 1876 0 0.0
.text 516056 516648 592 0.1
shell k32w061+debug (read/write) 657408 657984 576 0.1
.bss 78788 78788 0 0.0
.data 1844 1844 0 0.0
.text 570976 571552 576 0.1
linux all-clusters-app debug (read only) 1701033 1709865 8832 0.5
(read/write) 125856 126368 512 0.4
.bss 57328 57424 96 0.2
.data 1010 1010 0 0.0
.data.rel.ro 62256 62672 416 0.7
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 139477 139637 160 0.1
.text 1428066 1436546 8480 0.6
bridge-app debug+rpc (read only) 1300629 1305797 5168 0.4
(read/write) 77264 77264 0 0.0
.bss 42800 42800 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27928 27928 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111252 111348 96 0.1
.text 1092933 1098005 5072 0.5
chip-tool debug (read only) 4556205 4810117 253912 5.6
(read/write) 163688 166920 3232 2.0
.bss 41096 41096 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 114864 118112 3248 2.8
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 258122 266634 8512 3.3
.text 3997317 4235157 237840 5.9
lighting-app debug+rpc (read only) 1567289 1575257 7968 0.5
(read/write) 109936 109936 0 0.0
.bss 47984 47984 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55456 55456 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 129169 129265 96 0.1
.text 1303890 1311762 7872 0.6
ota-provider-app debug (read only) 1260345 1264793 4448 0.4
(read/write) 75048 75048 0 0.0
.bss 44416 44416 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24776 24776 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 112839 112935 96 0.1
.text 1050706 1055058 4352 0.4
ota-requestor-app debug (read only) 1345129 1349593 4464 0.3
(read/write) 78816 78816 0 0.0
.bss 46880 46880 0 0.0
.data 816 816 0 0.0
.data.rel.ro 26040 26040 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123664 123760 96 0.1
.text 1122114 1126482 4368 0.4
shell debug (read only) 788905 788905 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 77839 77839 0 0.0
.text 609170 609170 0 0.0
tv-app debug (read only) 1845017 1850345 5328 0.3
(read/write) 407672 407672 0 0.0
.bss 339656 339656 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59632 59632 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156173 156269 96 0.1
.text 1544370 1549602 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2289352 2290520 1168 0.1
.bss 179412 179492 80 0.0
.data 5216 5216 0 0.0
.heap 851816 851736 -80 -0.0
.text 1251952 1253120 1168 0.1
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272824 2273592 768 0.0
.bss 172524 172524 0 0.0
.data 5576 5576 0 0.0
.heap 858344 858344 0 0.0
.text 1235424 1236192 768 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2248448 2249024 576 0.0
.bss 171404 171404 0 0.0
.data 5568 5568 0 0.0
.heap 859472 859472 0 0.0
.text 1211048 1211624 576 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 863015 863927 912 0.1
bss 110932 110932 0 0.0
rodata 96888 96888 0 0.0
text 579568 580492 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825391 826319 928 0.1
bss 107284 107288 4 0.0
rodata 88080 88080 0 0.0
text 553740 554664 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 788058 788986 928 0.1
bss 112304 112308 4 0.0
rodata 92148 92148 0 0.0
text 509036 509960 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838235 838955 720 0.1
bss 109956 109956 0 0.0
rodata 92956 92956 0 0.0
text 559868 560592 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763546 764266 720 0.1
bss 111368 111368 0 0.0
rodata 88260 88260 0 0.0
text 489428 490152 724 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844327 845079 752 0.1
bss 110096 110096 0 0.0
rodata 94664 94664 0 0.0
text 564032 564776 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838087 838655 568 0.1
bss 109992 109992 0 0.0
rodata 92952 92912 -40 -0.0
text 559604 560212 608 0.1
shell nrf52840dk_nrf52840 (read/write) 775483 775483 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520008 520008 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690538 690538 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440616 440616 0 0.0
p6 all-clusters-app default (read/write) 2297296 2298920 1624 0.1
.bss 112416 112488 72 0.1
.data 2520 2520 0 0.0
.heap 918408 918336 -72 -0.0
.text 1255560 1257184 1624 0.1
lock-app default (read/write) 2211896 2212968 1072 0.0
.bss 101264 101264 0 0.0
.data 2400 2400 0 0.0
.heap 929680 929680 0 0.0
.text 1170160 1171232 1072 0.1
qpg lighting-app qpg6100+debug (read only) 492324 493172 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50624 50624 0 0.0
.data 1008 1008 0 0.0
.text 487004 487852 848 0.2
lock-app qpg6100+debug (read only) 467060 467700 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49560 49560 0 0.0
.data 964 964 0 0.0
.text 461740 462380 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 665202 666490 1288 0.2
bss 69304 69304 0 0.0
noinit 33216 33216 0 0.0
text 460046 461334 1288 0.3

@github-actions
Copy link

github-actions bot commented Nov 12, 2021

PR #11665: Size comparison from 2d0eb94 to 1ac8d2e

Increases above 0.2%:

platform target config section 2d0eb94 1ac8d2e change % change
linux all-clusters-app debug (read only) 1707201 1716017 8816 0.5
(read/write) 126176 126688 512 0.4
.data.rel.ro 62304 62720 416 0.7
.text 1433778 1442242 8464 0.6
bridge-app debug+rpc (read only) 1301269 1306437 5168 0.4
.text 1093285 1098357 5072 0.5
chip-tool debug (read only) 4576237 4830181 253944 5.5
(read/write) 163688 166920 3232 2.0
.data.rel.ro 114864 118112 3248 2.8
.rodata 258666 267210 8544 3.3
.text 4016805 4254645 237840 5.9
lighting-app debug+rpc (read only) 1567945 1575945 8000 0.5
.text 1304258 1312130 7872 0.6
ota-provider-app debug (read only) 1260745 1265209 4464 0.4
.text 1051058 1055426 4368 0.4
ota-requestor-app debug (read only) 1345529 1349993 4464 0.3
.text 1122466 1126834 4368 0.4
tv-app debug (read only) 1845913 1851241 5328 0.3
.text 1544738 1549970 5232 0.3
telink lighting-app tlsr9518adk80d text 460104 461376 1272 0.3
Increases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 2d0eb94 1ac8d2e change % change
efr32 lighting-app BRD4161A (read only) 745504 746752 1248 0.2
.text 745496 746744 1248 0.2
BRD4161A+rpc (read only) 733028 734292 1264 0.2
.text 733020 734284 1264 0.2
lock-app BRD4161A (read only) 722320 723392 1072 0.1
.text 722312 723384 1072 0.1
window-app BRD4161A (read only) 723232 724400 1168 0.2
.text 723224 724392 1168 0.2
esp32 all-clusters-app c3devkit (read only) 822644 823922 1278 0.2
(read/write) 1222138 1222554 416 0.0
.dram0.bss 56000 56072 72 0.1
.flash.rodata 166800 167136 336 0.2
.flash.text 822644 823922 1278 0.2
m5stack (read only) 893683 894891 1208 0.1
(read/write) 420320 420720 400 0.1
.dram0.bss 61088 61160 72 0.1
.flash.rodata 193852 194180 328 0.2
.flash.text 888299 889507 1208 0.1
k32w lighting-app k32w061+se05x+release (read/write) 700600 701384 784 0.1
.text 615416 616200 784 0.1
lock-app k32w061+debug (read/write) 591820 592412 592 0.1
.text 516148 516740 592 0.1
shell k32w061+debug (read/write) 657500 658076 576 0.1
.text 571068 571644 576 0.1
linux all-clusters-app debug (read only) 1707201 1716017 8816 0.5
(read/write) 126176 126688 512 0.4
.bss 57584 57680 96 0.2
.data.rel.ro 62304 62720 416 0.7
.rodata 139669 139829 160 0.1
.text 1433778 1442242 8464 0.6
bridge-app debug+rpc (read only) 1301269 1306437 5168 0.4
.rodata 111348 111444 96 0.1
.text 1093285 1098357 5072 0.5
chip-tool debug (read only) 4576237 4830181 253944 5.5
(read/write) 163688 166920 3232 2.0
.data.rel.ro 114864 118112 3248 2.8
.rodata 258666 267210 8544 3.3
.text 4016805 4254645 237840 5.9
lighting-app debug+rpc (read only) 1567945 1575945 8000 0.5
.rodata 129265 129393 128 0.1
.text 1304258 1312130 7872 0.6
ota-provider-app debug (read only) 1260745 1265209 4464 0.4
.rodata 112839 112935 96 0.1
.text 1051058 1055426 4368 0.4
ota-requestor-app debug (read only) 1345529 1349993 4464 0.3
.rodata 123664 123760 96 0.1
.text 1122466 1126834 4368 0.4
tv-app debug (read only) 1845913 1851241 5328 0.3
.rodata 156365 156461 96 0.1
.text 1544738 1549970 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2290096 2291192 1096 0.0
.bss 179580 179660 80 0.0
.text 1252696 1253792 1096 0.1
lighting-app CY8CPROTO_062_4343W+release (read/write) 2272912 2273680 768 0.0
.text 1235512 1236280 768 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2248544 2249120 576 0.0
.text 1211144 1211720 576 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 863095 864023 928 0.1
text 579628 580552 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825487 826399 912 0.1
bss 107284 107288 4 0.0
text 553800 554724 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 788154 789066 912 0.1
bss 112304 112308 4 0.0
text 509096 510020 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838331 839051 720 0.1
text 559928 560652 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763626 764362 736 0.1
text 489488 490212 724 0.1
pump-app nrf52840dk_nrf52840 (read/write) 844423 845159 736 0.1
text 564092 564836 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838183 838751 568 0.1
text 559664 560272 608 0.1
p6 all-clusters-app default (read/write) 2298176 2299808 1632 0.1
.bss 112576 112648 72 0.1
.text 1256440 1258072 1632 0.1
lock-app default (read/write) 2212008 2213064 1056 0.0
.text 1170272 1171328 1056 0.1
qpg lighting-app qpg6100+debug (read only) 492416 493264 848 0.2
.text 487096 487944 848 0.2
lock-app qpg6100+debug (read only) 467152 467792 640 0.1
.text 461832 462472 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 665286 666558 1272 0.2
text 460104 461376 1272 0.3
Decreases (3 builds for mbed, nrfconnect, p6)
platform target config section 2d0eb94 1ac8d2e change % change
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 851648 851568 -80 -0.0
nrfconnect pump-controller-app nrf52840dk_nrf52840 rodata 92984 92944 -40 -0.0
p6 all-clusters-app default .heap 918248 918176 -72 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 2d0eb94 1ac8d2e change % change
efr32 lighting-app BRD4161A (read only) 745504 746752 1248 0.2
(read/write) 115764 115764 0 0.0
.bss 113980 113980 0 0.0
.data 1784 1784 0 0.0
.text 745496 746744 1248 0.2
BRD4161A+rpc (read only) 733028 734292 1264 0.2
(read/write) 132392 132392 0 0.0
.bss 130484 130484 0 0.0
.data 1908 1908 0 0.0
.text 733020 734284 1264 0.2
lock-app BRD4161A (read only) 722320 723392 1072 0.1
(read/write) 113548 113548 0 0.0
.bss 111804 111804 0 0.0
.data 1740 1740 0 0.0
.text 722312 723384 1072 0.1
window-app BRD4161A (read only) 723232 724400 1168 0.2
(read/write) 113868 113868 0 0.0
.bss 112124 112124 0 0.0
.data 1744 1744 0 0.0
.text 723224 724392 1168 0.2
esp32 all-clusters-app c3devkit (read only) 822644 823922 1278 0.2
(read/write) 1222138 1222554 416 0.0
.dram0.bss 56000 56072 72 0.1
.dram0.data 14092 14092 0 0.0
.flash.rodata 166800 167136 336 0.2
.flash.text 822644 823922 1278 0.2
.iram0.text 61394 61394 0 0.0
m5stack (read only) 893683 894891 1208 0.1
(read/write) 420320 420720 400 0.1
.dram0.bss 61088 61160 72 0.1
.dram0.data 34056 34056 0 0.0
.flash.rodata 193852 194180 328 0.2
.flash.text 888299 889507 1208 0.1
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 700600 701384 784 0.1
.bss 77476 77476 0 0.0
.data 1908 1908 0 0.0
.text 615416 616200 784 0.1
lock-app k32w061+debug (read/write) 591820 592412 592 0.1
.bss 67996 67996 0 0.0
.data 1876 1876 0 0.0
.text 516148 516740 592 0.1
shell k32w061+debug (read/write) 657500 658076 576 0.1
.bss 78788 78788 0 0.0
.data 1844 1844 0 0.0
.text 571068 571644 576 0.1
linux all-clusters-app debug (read only) 1707201 1716017 8816 0.5
(read/write) 126176 126688 512 0.4
.bss 57584 57680 96 0.2
.data 1010 1010 0 0.0
.data.rel.ro 62304 62720 416 0.7
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 139669 139829 160 0.1
.text 1433778 1442242 8464 0.6
bridge-app debug+rpc (read only) 1301269 1306437 5168 0.4
(read/write) 77328 77328 0 0.0
.bss 42800 42800 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27992 27992 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111348 111444 96 0.1
.text 1093285 1098357 5072 0.5
chip-tool debug (read only) 4576237 4830181 253944 5.5
(read/write) 163688 166920 3232 2.0
.bss 41096 41096 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 114864 118112 3248 2.8
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 258666 267210 8544 3.3
.text 4016805 4254645 237840 5.9
lighting-app debug+rpc (read only) 1567945 1575945 8000 0.5
(read/write) 110032 110032 0 0.0
.bss 47984 47984 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55552 55552 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 129265 129393 128 0.1
.text 1304258 1312130 7872 0.6
ota-provider-app debug (read only) 1260745 1265209 4464 0.4
(read/write) 75080 75080 0 0.0
.bss 44416 44416 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24808 24808 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 112839 112935 96 0.1
.text 1051058 1055426 4368 0.4
ota-requestor-app debug (read only) 1345529 1349993 4464 0.3
(read/write) 78848 78848 0 0.0
.bss 46880 46880 0 0.0
.data 816 816 0 0.0
.data.rel.ro 26056 26056 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123664 123760 96 0.1
.text 1122466 1126834 4368 0.4
shell debug (read only) 788905 788905 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 77839 77839 0 0.0
.text 609170 609170 0 0.0
tv-app debug (read only) 1845913 1851241 5328 0.3
(read/write) 407768 407768 0 0.0
.bss 339656 339656 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59728 59728 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156365 156461 96 0.1
.text 1544738 1549970 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2290096 2291192 1096 0.0
.bss 179580 179660 80 0.0
.data 5216 5216 0 0.0
.heap 851648 851568 -80 -0.0
.text 1252696 1253792 1096 0.1
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272912 2273680 768 0.0
.bss 172524 172524 0 0.0
.data 5576 5576 0 0.0
.heap 858344 858344 0 0.0
.text 1235512 1236280 768 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2248544 2249120 576 0.0
.bss 171404 171404 0 0.0
.data 5568 5568 0 0.0
.heap 859472 859472 0 0.0
.text 1211144 1211720 576 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 863095 864023 928 0.1
bss 110932 110932 0 0.0
rodata 96920 96920 0 0.0
text 579628 580552 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 825487 826399 912 0.1
bss 107284 107288 4 0.0
rodata 88112 88112 0 0.0
text 553800 554724 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 788154 789066 912 0.1
bss 112304 112308 4 0.0
rodata 92180 92180 0 0.0
text 509096 510020 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 838331 839051 720 0.1
bss 109956 109956 0 0.0
rodata 92988 92988 0 0.0
text 559928 560652 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 763626 764362 736 0.1
bss 111368 111368 0 0.0
rodata 88292 88292 0 0.0
text 489488 490212 724 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844423 845159 736 0.1
bss 110096 110096 0 0.0
rodata 94696 94696 0 0.0
text 564092 564836 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 838183 838751 568 0.1
bss 109992 109992 0 0.0
rodata 92984 92944 -40 -0.0
text 559664 560272 608 0.1
shell nrf52840dk_nrf52840 (read/write) 775483 775483 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520008 520008 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690538 690538 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440616 440616 0 0.0
p6 all-clusters-app default (read/write) 2298176 2299808 1632 0.1
.bss 112576 112648 72 0.1
.data 2520 2520 0 0.0
.heap 918248 918176 -72 -0.0
.text 1256440 1258072 1632 0.1
lock-app default (read/write) 2212008 2213064 1056 0.0
.bss 101264 101264 0 0.0
.data 2400 2400 0 0.0
.heap 929680 929680 0 0.0
.text 1170272 1171328 1056 0.1
qpg lighting-app qpg6100+debug (read only) 492416 493264 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50624 50624 0 0.0
.data 1008 1008 0 0.0
.text 487096 487944 848 0.2
lock-app qpg6100+debug (read only) 467152 467792 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49560 49560 0 0.0
.data 964 964 0 0.0
.text 461832 462472 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 665286 666558 1272 0.2
bss 69304 69304 0 0.0
noinit 33216 33216 0 0.0
text 460104 461376 1272 0.3

@bzbarsky-apple bzbarsky-apple linked an issue Nov 12, 2021 that may be closed by this pull request
@github-actions
Copy link

github-actions bot commented Nov 12, 2021

PR #11665: Size comparison from 5d4bade to a80407c

Increases above 0.2%:

platform target config section 5d4bade a80407c change % change
linux all-clusters-app debug (read only) 1712537 1721369 8832 0.5
(read/write) 126336 126848 512 0.4
.data.rel.ro 62336 62752 416 0.7
.text 1438434 1446914 8480 0.6
bridge-app debug+rpc (read only) 1306573 1311741 5168 0.4
.text 1097909 1102981 5072 0.5
chip-tool debug (read only) 4613309 4867477 254168 5.5
(read/write) 164008 167240 3232 2.0
.data.rel.ro 115040 118288 3248 2.8
.rodata 259594 268106 8512 3.3
.text 4051605 4289701 238096 5.9
lighting-app debug+rpc (read only) 1573345 1581313 7968 0.5
.text 1308946 1316818 7872 0.6
ota-provider-app debug (read only) 1261809 1266305 4496 0.4
.text 1051810 1056178 4368 0.4
ota-requestor-app debug (read only) 1346625 1351089 4464 0.3
.text 1123218 1127586 4368 0.4
tv-app debug (read only) 1851361 1856689 5328 0.3
.text 1549506 1554738 5232 0.3
telink lighting-app tlsr9518adk80d text 460906 462178 1272 0.3
Increases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5d4bade a80407c change % change
efr32 lighting-app BRD4161A (read only) 748640 749888 1248 0.2
.text 748632 749880 1248 0.2
BRD4161A+rpc (read only) 736188 737452 1264 0.2
.text 736180 737444 1264 0.2
lock-app BRD4161A (read only) 725480 726552 1072 0.1
.text 725472 726544 1072 0.1
window-app BRD4161A (read only) 726376 727544 1168 0.2
.text 726368 727536 1168 0.2
esp32 all-clusters-app c3devkit (read only) 823478 824756 1278 0.2
(read/write) 1222346 1222754 408 0.0
.dram0.bss 56016 56088 72 0.1
.flash.rodata 166992 167320 328 0.2
.flash.text 823478 824756 1278 0.2
m5stack (read only) 894551 895723 1172 0.1
(read/write) 420520 420920 400 0.1
.dram0.bss 61104 61176 72 0.1
.flash.rodata 194036 194364 328 0.2
.flash.text 889167 890339 1172 0.1
k32w lighting-app k32w061+se05x+release (read/write) 701568 702352 784 0.1
.text 616352 617136 784 0.1
lock-app k32w061+debug (read/write) 592784 593376 592 0.1
.text 517080 517672 592 0.1
shell k32w061+debug (read/write) 658468 659044 576 0.1
.text 572004 572580 576 0.1
linux all-clusters-app debug (read only) 1712537 1721369 8832 0.5
(read/write) 126336 126848 512 0.4
.bss 57680 57776 96 0.2
.data.rel.ro 62336 62752 416 0.7
.rodata 140053 140213 160 0.1
.text 1438434 1446914 8480 0.6
bridge-app debug+rpc (read only) 1306573 1311741 5168 0.4
.rodata 111668 111764 96 0.1
.text 1097909 1102981 5072 0.5
chip-tool debug (read only) 4613309 4867477 254168 5.5
(read/write) 164008 167240 3232 2.0
.data.rel.ro 115040 118288 3248 2.8
.rodata 259594 268106 8512 3.3
.text 4051605 4289701 238096 5.9
lighting-app debug+rpc (read only) 1573345 1581313 7968 0.5
.rodata 129681 129777 96 0.1
.text 1308946 1316818 7872 0.6
ota-provider-app debug (read only) 1261809 1266305 4496 0.4
.rodata 113127 113255 128 0.1
.text 1051810 1056178 4368 0.4
ota-requestor-app debug (read only) 1346625 1351089 4464 0.3
.rodata 123984 124080 96 0.1
.text 1123218 1127586 4368 0.4
tv-app debug (read only) 1851361 1856689 5328 0.3
.rodata 156749 156845 96 0.1
.text 1549506 1554738 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2290920 2292080 1160 0.1
.bss 179612 179692 80 0.0
.text 1253520 1254680 1160 0.1
lighting-app CY8CPROTO_062_4343W+release (read/write) 2273728 2274496 768 0.0
.text 1236328 1237096 768 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2249424 2250000 576 0.0
.text 1212024 1212600 576 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 864075 865007 932 0.1
rodata 97100 97104 4 0.0
text 580388 581312 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 826451 827379 928 0.1
bss 107316 107320 4 0.0
text 554560 555484 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 789118 790046 928 0.1
bss 112336 112340 4 0.0
text 509856 510780 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 839311 840031 720 0.1
text 560692 561416 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 764606 765326 720 0.1
text 490252 490976 724 0.1
pump-app nrf52840dk_nrf52840 (read/write) 845387 846139 752 0.1
text 564852 565596 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 839167 839731 564 0.1
text 560428 561036 608 0.1
p6 all-clusters-app default (read/write) 2299408 2301032 1624 0.1
.bss 112608 112680 72 0.1
.text 1257672 1259296 1624 0.1
lock-app default (read/write) 2213448 2214520 1072 0.0
.text 1171712 1172784 1072 0.1
qpg lighting-app qpg6100+debug (read only) 493180 494028 848 0.2
.text 487860 488708 848 0.2
lock-app qpg6100+debug (read only) 467924 468564 640 0.1
.text 462604 463244 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 666414 667686 1272 0.2
text 460906 462178 1272 0.3
Decreases (3 builds for mbed, nrfconnect, p6)
platform target config section 5d4bade a80407c change % change
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 851616 851536 -80 -0.0
nrfconnect pump-controller-app nrf52840dk_nrf52840 rodata 93168 93124 -44 -0.0
p6 all-clusters-app default .heap 918216 918144 -72 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5d4bade a80407c change % change
efr32 lighting-app BRD4161A (read only) 748640 749888 1248 0.2
(read/write) 115940 115940 0 0.0
.bss 114140 114140 0 0.0
.data 1800 1800 0 0.0
.text 748632 749880 1248 0.2
BRD4161A+rpc (read only) 736188 737452 1264 0.2
(read/write) 132568 132568 0 0.0
.bss 130644 130644 0 0.0
.data 1924 1924 0 0.0
.text 736180 737444 1264 0.2
lock-app BRD4161A (read only) 725480 726552 1072 0.1
(read/write) 113724 113724 0 0.0
.bss 111964 111964 0 0.0
.data 1756 1756 0 0.0
.text 725472 726544 1072 0.1
window-app BRD4161A (read only) 726376 727544 1168 0.2
(read/write) 114044 114044 0 0.0
.bss 112284 112284 0 0.0
.data 1760 1760 0 0.0
.text 726368 727536 1168 0.2
esp32 all-clusters-app c3devkit (read only) 823478 824756 1278 0.2
(read/write) 1222346 1222754 408 0.0
.dram0.bss 56016 56088 72 0.1
.dram0.data 14092 14092 0 0.0
.flash.rodata 166992 167320 328 0.2
.flash.text 823478 824756 1278 0.2
.iram0.text 61394 61394 0 0.0
m5stack (read only) 894551 895723 1172 0.1
(read/write) 420520 420920 400 0.1
.dram0.bss 61104 61176 72 0.1
.dram0.data 34056 34056 0 0.0
.flash.rodata 194036 194364 328 0.2
.flash.text 889167 890339 1172 0.1
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 701568 702352 784 0.1
.bss 77508 77508 0 0.0
.data 1908 1908 0 0.0
.text 616352 617136 784 0.1
lock-app k32w061+debug (read/write) 592784 593376 592 0.1
.bss 68028 68028 0 0.0
.data 1876 1876 0 0.0
.text 517080 517672 592 0.1
shell k32w061+debug (read/write) 658468 659044 576 0.1
.bss 78820 78820 0 0.0
.data 1844 1844 0 0.0
.text 572004 572580 576 0.1
linux all-clusters-app debug (read only) 1712537 1721369 8832 0.5
(read/write) 126336 126848 512 0.4
.bss 57680 57776 96 0.2
.data 1042 1042 0 0.0
.data.rel.ro 62336 62752 416 0.7
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 140053 140213 160 0.1
.text 1438434 1446914 8480 0.6
bridge-app debug+rpc (read only) 1306573 1311741 5168 0.4
(read/write) 77456 77456 0 0.0
.bss 42896 42896 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27992 27992 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111668 111764 96 0.1
.text 1097909 1102981 5072 0.5
chip-tool debug (read only) 4613309 4867477 254168 5.5
(read/write) 164008 167240 3232 2.0
.bss 41192 41192 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 115040 118288 3248 2.8
.dynamic 592 592 0 0.0
.got 4416 4416 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 259594 268106 8512 3.3
.text 4051605 4289701 238096 5.9
lighting-app debug+rpc (read only) 1573345 1581313 7968 0.5
(read/write) 110224 110224 0 0.0
.bss 48080 48080 0 0.0
.data 1234 1234 0 0.0
.data.rel.ro 55584 55584 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 129681 129777 96 0.1
.text 1308946 1316818 7872 0.6
ota-provider-app debug (read only) 1261809 1266305 4496 0.4
(read/write) 75208 75208 0 0.0
.bss 44512 44512 0 0.0
.data 784 784 0 0.0
.data.rel.ro 24808 24808 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 113127 113255 128 0.1
.text 1051810 1056178 4368 0.4
ota-requestor-app debug (read only) 1346625 1351089 4464 0.3
(read/write) 78976 78976 0 0.0
.bss 46976 46976 0 0.0
.data 848 848 0 0.0
.data.rel.ro 26056 26056 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123984 124080 96 0.1
.text 1123218 1127586 4368 0.4
shell debug (read only) 788969 788969 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 77903 77903 0 0.0
.text 609170 609170 0 0.0
tv-app debug (read only) 1851361 1856689 5328 0.3
(read/write) 407928 407928 0 0.0
.bss 339752 339752 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 59728 59728 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156749 156845 96 0.1
.text 1549506 1554738 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2290920 2292080 1160 0.1
.bss 179612 179692 80 0.0
.data 5216 5216 0 0.0
.heap 851616 851536 -80 -0.0
.text 1253520 1254680 1160 0.1
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2273728 2274496 768 0.0
.bss 172556 172556 0 0.0
.data 5576 5576 0 0.0
.heap 858312 858312 0 0.0
.text 1236328 1237096 768 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2249424 2250000 576 0.0
.bss 171436 171436 0 0.0
.data 5568 5568 0 0.0
.heap 859440 859440 0 0.0
.text 1212024 1212600 576 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 864075 865007 932 0.1
bss 110964 110964 0 0.0
rodata 97100 97104 4 0.0
text 580388 581312 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 826451 827379 928 0.1
bss 107316 107320 4 0.0
rodata 88292 88292 0 0.0
text 554560 555484 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 789118 790046 928 0.1
bss 112336 112340 4 0.0
rodata 92360 92360 0 0.0
text 509856 510780 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 839311 840031 720 0.1
bss 109988 109988 0 0.0
rodata 93168 93168 0 0.0
text 560692 561416 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 764606 765326 720 0.1
bss 111400 111400 0 0.0
rodata 88472 88472 0 0.0
text 490252 490976 724 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 845387 846139 752 0.1
bss 110128 110128 0 0.0
rodata 94876 94876 0 0.0
text 564852 565596 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 839167 839731 564 0.1
bss 110024 110024 0 0.0
rodata 93168 93124 -44 -0.0
text 560428 561036 608 0.1
shell nrf52840dk_nrf52840 (read/write) 775483 775483 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520008 520008 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690538 690538 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440616 440616 0 0.0
p6 all-clusters-app default (read/write) 2299408 2301032 1624 0.1
.bss 112608 112680 72 0.1
.data 2520 2520 0 0.0
.heap 918216 918144 -72 -0.0
.text 1257672 1259296 1624 0.1
lock-app default (read/write) 2213448 2214520 1072 0.0
.bss 101296 101296 0 0.0
.data 2400 2400 0 0.0
.heap 929648 929648 0 0.0
.text 1171712 1172784 1072 0.1
qpg lighting-app qpg6100+debug (read only) 493180 494028 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50640 50640 0 0.0
.data 1008 1008 0 0.0
.text 487860 488708 848 0.2
lock-app qpg6100+debug (read only) 467924 468564 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49576 49576 0 0.0
.data 964 964 0 0.0
.text 462604 463244 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 666414 667686 1272 0.2
bss 69320 69320 0 0.0
noinit 33216 33216 0 0.0
text 460906 462178 1272 0.3

@bzbarsky-apple
Copy link
Contributor Author

…tten.

This implements the following semantics, for attributes we store in
the attribute store (integers, booleans, strings, octet strings):

Writes:

* An attempt to write TLV null for non-nullable attributes leads to an
  error.

* Writing TLV null to a nullable string or octet string sets its length
  to 0xFFFF or 0xFF depending on whether it's a long string or not.

* Writing TLV null to a nullable integer or boolean uses the "NaU" or
  "NaS" ZCL representation to represent it.

* Writing a TLV integer to an integer attribute makes a
  CanRepresentValue check and returns an error if it returns false.
  For now CanRepresentValue only disallows the NaU/NaS value for
  nullable attributes.

Reads:

* When reading a nullable integer or boolean, NaU/NaS is converted to TLV null.

* When reading an integer or boolean all other cases go through a
  CanRepresentValue check (in case the value in the attr store is not
  actually valid) and return error if it returns false.

* When reading a nullable string or octet string, length 0xFFFF/0xFF
  is converted to TLV null.

* When reading a non-nullable string or octet string, length
  0xFFFF/0xFF leads to an error.
For setters, the new behavior is:

* For non-string attributes when setting an integer or boolean value,
  do a CanRepresentValue check and fail if that fails.  For string
  attributes, ensure that strings with 0xFF or 0xFFFF as length cannot
  be passed in in practice.

* For nullable attributes add a SetNull method.

* For nullable attributes add a Set() method taking a Nullable<T> and
  calling either SetNull or the setter that expects a non-null value.

For getters, the new behavior is:

* When reading a nullable integer or boolean, NaU/NaS is converted to
  a null value stored in the Nullable.

* When reading a non-nullable integer or boolean, return error if
  CanRepresentValue returns false on the value from the attr store.

* When reading a nullable string or octet string, length 0xFFFF/0xFF
  is converted to a null value stored in the Nullable.

* When reading a non-nullable string or octet string, length
  0xFFFF/0xFF leads to an error.

The XML changes are for two problems the new asserts caught: we had
strings that were short-typed, but had sizes that would not fit in a
single byte length.
@github-actions
Copy link

github-actions bot commented Nov 12, 2021

PR #11665: Size comparison from ea10a5d to 41b50d4

Increases above 0.2%:

platform target config section ea10a5d 41b50d4 change % change
esp32 all-clusters-app c3devkit .flash.rodata 167704 168040 336 0.2
linux all-clusters-app debug (read only) 1713393 1722225 8832 0.5
(read/write) 126304 126816 512 0.4
.data.rel.ro 62304 62720 416 0.7
.text 1439250 1447730 8480 0.6
bridge-app debug+rpc (read only) 1307461 1312613 5152 0.4
.text 1098725 1103781 5056 0.5
chip-tool debug (read only) 4662317 4921493 259176 5.6
(read/write) 163976 167208 3232 2.0
.data.rel.ro 115024 118256 3232 2.8
.rodata 259730 268242 8512 3.3
.text 4100501 4343605 243104 5.9
lighting-app debug+rpc (read only) 1574201 1582169 7968 0.5
.text 1309762 1317634 7872 0.6
ota-provider-app debug (read only) 1262729 1267225 4496 0.4
.text 1052626 1056994 4368 0.4
ota-requestor-app debug (read only) 1347545 1352009 4464 0.3
.text 1124034 1128402 4368 0.4
tv-app debug (read only) 1853257 1858585 5328 0.3
.text 1551202 1556434 5232 0.3
telink lighting-app tlsr9518adk80d text 461088 462360 1272 0.3
Increases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section ea10a5d 41b50d4 change % change
efr32 lighting-app BRD4161A (read only) 748808 750072 1264 0.2
.text 748800 750064 1264 0.2
BRD4161A+rpc (read only) 736372 737620 1248 0.2
.text 736364 737612 1248 0.2
lock-app BRD4161A (read only) 725648 726720 1072 0.1
.text 725640 726712 1072 0.1
window-app BRD4161A (read only) 726560 727712 1152 0.2
.text 726552 727704 1152 0.2
esp32 all-clusters-app c3devkit (read only) 825666 826944 1278 0.2
(read/write) 1224066 1224466 400 0.0
.dram0.bss 57016 57088 72 0.1
.flash.rodata 167704 168040 336 0.2
.flash.text 825666 826944 1278 0.2
m5stack (read only) 896459 897611 1152 0.1
(read/write) 422224 422624 400 0.1
.dram0.bss 62112 62184 72 0.1
.flash.rodata 194732 195060 328 0.2
.flash.text 891075 892227 1152 0.1
k32w lighting-app k32w061+se05x+release (read/write) 701740 702524 784 0.1
.text 616524 617308 784 0.1
lock-app k32w061+debug (read/write) 592956 593548 592 0.1
.text 517252 517844 592 0.1
shell k32w061+debug (read/write) 658640 659216 576 0.1
.text 572176 572752 576 0.1
linux all-clusters-app debug (read only) 1713393 1722225 8832 0.5
(read/write) 126304 126816 512 0.4
.bss 57680 57776 96 0.2
.data.rel.ro 62304 62720 416 0.7
.rodata 140117 140277 160 0.1
.text 1439250 1447730 8480 0.6
bridge-app debug+rpc (read only) 1307461 1312613 5152 0.4
.rodata 111764 111860 96 0.1
.text 1098725 1103781 5056 0.5
chip-tool debug (read only) 4662317 4921493 259176 5.6
(read/write) 163976 167208 3232 2.0
.data.rel.ro 115024 118256 3232 2.8
.rodata 259730 268242 8512 3.3
.text 4100501 4343605 243104 5.9
lighting-app debug+rpc (read only) 1574201 1582169 7968 0.5
.rodata 129745 129841 96 0.1
.text 1309762 1317634 7872 0.6
ota-provider-app debug (read only) 1262729 1267225 4496 0.4
.rodata 113255 113383 128 0.1
.text 1052626 1056994 4368 0.4
ota-requestor-app debug (read only) 1347545 1352009 4464 0.3
.rodata 124112 124208 96 0.1
.text 1124034 1128402 4368 0.4
tv-app debug (read only) 1853257 1858585 5328 0.3
.rodata 156973 157069 96 0.1
.text 1551202 1556434 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2291040 2292200 1160 0.1
.bss 179612 179692 80 0.0
.text 1253640 1254800 1160 0.1
lighting-app CY8CPROTO_062_4343W+release (read/write) 2273856 2274624 768 0.0
.text 1236456 1237224 768 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2249552 2250128 576 0.0
.text 1212152 1212728 576 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 864247 865175 928 0.1
text 580580 581504 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 826619 827551 932 0.1
bss 107316 107320 4 0.0
rodata 88268 88272 4 0.0
text 554752 555676 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 789286 790218 932 0.1
bss 112336 112340 4 0.0
rodata 92336 92340 4 0.0
text 510048 510972 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 839463 840199 736 0.1
text 560880 561604 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 764778 765498 720 0.1
text 490440 491164 724 0.1
pump-app nrf52840dk_nrf52840 (read/write) 845559 846311 752 0.1
text 565044 565788 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 839335 839903 568 0.1
text 560616 561224 608 0.1
p6 all-clusters-app default (read/write) 2299576 2301216 1640 0.1
.bss 112608 112680 72 0.1
.text 1257840 1259480 1640 0.1
lock-app default (read/write) 2213616 2214688 1072 0.0
.text 1171880 1172952 1072 0.1
qpg lighting-app qpg6100+debug (read only) 493352 494200 848 0.2
.text 488032 488880 848 0.2
lock-app qpg6100+debug (read only) 468096 468736 640 0.1
.text 462776 463416 640 0.1
telink lighting-app tlsr9518adk80d (read/write) 666566 667838 1272 0.2
text 461088 462360 1272 0.3
Decreases (3 builds for mbed, nrfconnect, p6)
platform target config section ea10a5d 41b50d4 change % change
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 851616 851536 -80 -0.0
nrfconnect pump-controller-app nrf52840dk_nrf52840 rodata 93144 93104 -40 -0.0
p6 all-clusters-app default .heap 918216 918144 -72 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section ea10a5d 41b50d4 change % change
efr32 lighting-app BRD4161A (read only) 748808 750072 1264 0.2
(read/write) 115940 115940 0 0.0
.bss 114140 114140 0 0.0
.data 1800 1800 0 0.0
.text 748800 750064 1264 0.2
BRD4161A+rpc (read only) 736372 737620 1248 0.2
(read/write) 132568 132568 0 0.0
.bss 130644 130644 0 0.0
.data 1924 1924 0 0.0
.text 736364 737612 1248 0.2
lock-app BRD4161A (read only) 725648 726720 1072 0.1
(read/write) 113724 113724 0 0.0
.bss 111964 111964 0 0.0
.data 1756 1756 0 0.0
.text 725640 726712 1072 0.1
window-app BRD4161A (read only) 726560 727712 1152 0.2
(read/write) 114044 114044 0 0.0
.bss 112284 112284 0 0.0
.data 1760 1760 0 0.0
.text 726552 727704 1152 0.2
esp32 all-clusters-app c3devkit (read only) 825666 826944 1278 0.2
(read/write) 1224066 1224466 400 0.0
.dram0.bss 57016 57088 72 0.1
.dram0.data 14092 14092 0 0.0
.flash.rodata 167704 168040 336 0.2
.flash.text 825666 826944 1278 0.2
.iram0.text 61394 61394 0 0.0
m5stack (read only) 896459 897611 1152 0.1
(read/write) 422224 422624 400 0.1
.dram0.bss 62112 62184 72 0.1
.dram0.data 34056 34056 0 0.0
.flash.rodata 194732 195060 328 0.2
.flash.text 891075 892227 1152 0.1
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 701740 702524 784 0.1
.bss 77508 77508 0 0.0
.data 1908 1908 0 0.0
.text 616524 617308 784 0.1
lock-app k32w061+debug (read/write) 592956 593548 592 0.1
.bss 68028 68028 0 0.0
.data 1876 1876 0 0.0
.text 517252 517844 592 0.1
shell k32w061+debug (read/write) 658640 659216 576 0.1
.bss 78820 78820 0 0.0
.data 1844 1844 0 0.0
.text 572176 572752 576 0.1
linux all-clusters-app debug (read only) 1713393 1722225 8832 0.5
(read/write) 126304 126816 512 0.4
.bss 57680 57776 96 0.2
.data 1042 1042 0 0.0
.data.rel.ro 62304 62720 416 0.7
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 140117 140277 160 0.1
.text 1439250 1447730 8480 0.6
bridge-app debug+rpc (read only) 1307461 1312613 5152 0.4
(read/write) 77424 77424 0 0.0
.bss 42896 42896 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27960 27960 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111764 111860 96 0.1
.text 1098725 1103781 5056 0.5
chip-tool debug (read only) 4662317 4921493 259176 5.6
(read/write) 163976 167208 3232 2.0
.bss 41192 41192 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 115024 118256 3232 2.8
.dynamic 592 592 0 0.0
.got 4416 4416 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 259730 268242 8512 3.3
.text 4100501 4343605 243104 5.9
lighting-app debug+rpc (read only) 1574201 1582169 7968 0.5
(read/write) 110192 110192 0 0.0
.bss 48080 48080 0 0.0
.data 1234 1234 0 0.0
.data.rel.ro 55552 55552 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 129745 129841 96 0.1
.text 1309762 1317634 7872 0.6
ota-provider-app debug (read only) 1262729 1267225 4496 0.4
(read/write) 75176 75176 0 0.0
.bss 44512 44512 0 0.0
.data 784 784 0 0.0
.data.rel.ro 24776 24776 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 113255 113383 128 0.1
.text 1052626 1056994 4368 0.4
ota-requestor-app debug (read only) 1347545 1352009 4464 0.3
(read/write) 78944 78944 0 0.0
.bss 46976 46976 0 0.0
.data 848 848 0 0.0
.data.rel.ro 26040 26040 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 124112 124208 96 0.1
.text 1124034 1128402 4368 0.4
shell debug (read only) 788969 788969 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 77903 77903 0 0.0
.text 609170 609170 0 0.0
tv-app debug (read only) 1853257 1858585 5328 0.3
(read/write) 407896 407896 0 0.0
.bss 339752 339752 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 59696 59696 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156973 157069 96 0.1
.text 1551202 1556434 5232 0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2291040 2292200 1160 0.1
.bss 179612 179692 80 0.0
.data 5216 5216 0 0.0
.heap 851616 851536 -80 -0.0
.text 1253640 1254800 1160 0.1
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2273856 2274624 768 0.0
.bss 172556 172556 0 0.0
.data 5576 5576 0 0.0
.heap 858312 858312 0 0.0
.text 1236456 1237224 768 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2249552 2250128 576 0.0
.bss 171436 171436 0 0.0
.data 5568 5568 0 0.0
.heap 859440 859440 0 0.0
.text 1212152 1212728 576 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 864247 865175 928 0.1
bss 110964 110964 0 0.0
rodata 97080 97080 0 0.0
text 580580 581504 924 0.2
nrf52840dk_nrf52840+rpc (read/write) 826619 827551 932 0.1
bss 107316 107320 4 0.0
rodata 88268 88272 4 0.0
text 554752 555676 924 0.2
nrf5340dk_nrf5340_cpuapp (read/write) 789286 790218 932 0.1
bss 112336 112340 4 0.0
rodata 92336 92340 4 0.0
text 510048 510972 924 0.2
lock-app nrf52840dk_nrf52840 (read/write) 839463 840199 736 0.1
bss 109988 109988 0 0.0
rodata 93144 93144 0 0.0
text 560880 561604 724 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 764778 765498 720 0.1
bss 111400 111400 0 0.0
rodata 88452 88452 0 0.0
text 490440 491164 724 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 845559 846311 752 0.1
bss 110128 110128 0 0.0
rodata 94856 94856 0 0.0
text 565044 565788 744 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 839335 839903 568 0.1
bss 110024 110024 0 0.0
rodata 93144 93104 -40 -0.0
text 560616 561224 608 0.1
shell nrf52840dk_nrf52840 (read/write) 775483 775483 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520008 520008 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690538 690538 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440616 440616 0 0.0
p6 all-clusters-app default (read/write) 2299576 2301216 1640 0.1
.bss 112608 112680 72 0.1
.data 2520 2520 0 0.0
.heap 918216 918144 -72 -0.0
.text 1257840 1259480 1640 0.1
lock-app default (read/write) 2213616 2214688 1072 0.0
.bss 101296 101296 0 0.0
.data 2400 2400 0 0.0
.heap 929648 929648 0 0.0
.text 1171880 1172952 1072 0.1
qpg lighting-app qpg6100+debug (read only) 493352 494200 848 0.2
(read/write) 114144 114144 0 0.0
.bss 50640 50640 0 0.0
.data 1008 1008 0 0.0
.text 488032 488880 848 0.2
lock-app qpg6100+debug (read only) 468096 468736 640 0.1
(read/write) 114140 114140 0 0.0
.bss 49576 49576 0 0.0
.data 964 964 0 0.0
.text 462776 463416 640 0.1
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 666566 667838 1272 0.2
bss 69320 69320 0 0.0
noinit 33216 33216 0 0.0
text 461088 462360 1272 0.3

@bzbarsky-apple bzbarsky-apple merged commit 507ba15 into project-chip:master Nov 12, 2021
@bzbarsky-apple bzbarsky-apple deleted the nullable-attr-store branch November 12, 2021 22:31
PSONALl pushed a commit to PSONALl/connectedhomeip that referenced this pull request Dec 3, 2021
…ssors (project-chip#11665)

* Add a way to ask EmberAfAttributeMetadata whether the attribute is nullable.

* Convert ZCL null values to/from TLV null when attributes are read/written.

This implements the following semantics, for attributes we store in
the attribute store (integers, booleans, strings, octet strings):

Writes:

* An attempt to write TLV null for non-nullable attributes leads to an
  error.

* Writing TLV null to a nullable string or octet string sets its length
  to 0xFFFF or 0xFF depending on whether it's a long string or not.

* Writing TLV null to a nullable integer or boolean uses the "NaU" or
  "NaS" ZCL representation to represent it.

* Writing a TLV integer to an integer attribute makes a
  CanRepresentValue check and returns an error if it returns false.
  For now CanRepresentValue only disallows the NaU/NaS value for
  nullable attributes.

Reads:

* When reading a nullable integer or boolean, NaU/NaS is converted to TLV null.

* When reading an integer or boolean all other cases go through a
  CanRepresentValue check (in case the value in the attr store is not
  actually valid) and return error if it returns false.

* When reading a nullable string or octet string, length 0xFFFF/0xFF
  is converted to TLV null.

* When reading a non-nullable string or octet string, length
  0xFFFF/0xFF leads to an error.

* Fix Accessors to handle nullable attributes.

For setters, the new behavior is:

* For non-string attributes when setting an integer or boolean value,
  do a CanRepresentValue check and fail if that fails.  For string
  attributes, ensure that strings with 0xFF or 0xFFFF as length cannot
  be passed in in practice.

* For nullable attributes add a SetNull method.

* For nullable attributes add a Set() method taking a Nullable<T> and
  calling either SetNull or the setter that expects a non-null value.

For getters, the new behavior is:

* When reading a nullable integer or boolean, NaU/NaS is converted to
  a null value stored in the Nullable.

* When reading a non-nullable integer or boolean, return error if
  CanRepresentValue returns false on the value from the attr store.

* When reading a nullable string or octet string, length 0xFFFF/0xFF
  is converted to a null value stored in the Nullable.

* When reading a non-nullable string or octet string, length
  0xFFFF/0xFF leads to an error.

The XML changes are for two problems the new asserts caught: we had
strings that were short-typed, but had sizes that would not fit in a
single byte length.

* Add tests for nullable attributes.

* Fix the Darwin tests by skipping the nullable read for now

* Address review comments
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.

Add TestCluster example(s) of nullable attribute(s)
4 participants