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

[Darwin] MTRDevice to persist data versions and use for subscription #32153

Conversation

jtung-apple
Copy link
Contributor

This PR includes:

  1. Add attribute data versions to the MTRDevice read cache, which gets persisted with the per-controller storage when available.
  2. MTRDevice subscriptions now makes use of data version filter list .
  3. Unit test for testing that data versions is restored and applied when new MTRDevice object is created.

Copy link

github-actions bot commented Feb 15, 2024

PR #32153: Size comparison from 8d30071 to b1da9b0

Decreases (1 build for efr32)
platform target config section 8d30071 b1da9b0 change % change
efr32 lighting-app BRD4161A+rs9116 (read/write) 928768 928760 -8 -0.0
.text 729460 729452 -8 -0.0
Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
platform target config section 8d30071 b1da9b0 change % change
bl602 lighting-app bl602 (read/write) 1431706 1431706 0 0.0
.bss 85312 85312 0 0.0
.data 9496 9496 0 0.0
.rodata 157444 157444 0 0.0
.text 1098804 1098804 0 0.0
bl602+mfd (read/write) 1446106 1446106 0 0.0
.bss 85472 85472 0 0.0
.data 9472 9472 0 0.0
.rodata 156404 156404 0 0.0
.text 1114114 1114114 0 0.0
bl602+rpc (read/write) 1479082 1479082 0 0.0
.bss 93344 93344 0 0.0
.data 9872 9872 0 0.0
.rodata 165020 165020 0 0.0
.text 1130186 1130186 0 0.0
bl702 lighting-app bl702 (read only) 3478 3478 0 0.0
(read/write) 1196643 1196643 0 0.0
.bss 11121 11121 0 0.0
.data 3680 3680 0 0.0
.rodata 106788 106788 0 0.0
.text 968204 968204 0 0.0
bl702+mfd (read only) 3478 3478 0 0.0
(read/write) 1207443 1207443 0 0.0
.bss 11297 11297 0 0.0
.data 3656 3656 0 0.0
.rodata 105728 105728 0 0.0
.text 979958 979958 0 0.0
bl702+rpc (read only) 3478 3478 0 0.0
(read/write) 1288095 1288095 0 0.0
.bss 19589 19589 0 0.0
.data 4224 4224 0 0.0
.rodata 122160 122160 0 0.0
.text 1042892 1042892 0 0.0
bl706-eth (read/write) 1014869 1014869 0 0.0
.bss 23680 23680 0 0.0
.data 3248 3248 0 0.0
.rodata 100136 100136 0 0.0
.text 759850 759850 0 0.0
bl706-wifi (read/write) 1248098 1248098 0 0.0
.bss 10565 10565 0 0.0
.data 3688 3688 0 0.0
.rodata 121132 121132 0 0.0
.text 990322 990322 0 0.0
bl702l lighting-app bl702l (read only) 512 512 0 0.0
(read/write) 1165952 1165952 0 0.0
.bss 16316 16316 0 0.0
.data 5040 5040 0 0.0
.rodata 100792 100792 0 0.0
.text 961050 961050 0 0.0
bl702l+mfd (read only) 512 512 0 0.0
(read/write) 1177356 1177356 0 0.0
.bss 16492 16492 0 0.0
.data 5024 5024 0 0.0
.rodata 99732 99732 0 0.0
.text 973372 973372 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 780868 780868 0 0.0
(read/write) 168928 168928 0 0.0
.bss 90932 90932 0 0.0
.data 3560 3560 0 0.0
.rodata 90316 90316 0 0.0
.text 690284 690284 0 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 797660 797660 0 0.0
(read/write) 179168 179168 0 0.0
.bss 101172 101172 0 0.0
.data 3560 3560 0 0.0
.rodata 84604 84604 0 0.0
.text 712788 712788 0 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 786300 786300 0 0.0
(read/write) 173616 173616 0 0.0
.bss 95620 95620 0 0.0
.data 3560 3560 0 0.0
.rodata 111364 111364 0 0.0
.text 674668 674668 0 0.0
pump-app LP_EM_CC1354P10_6 (read only) 738492 738492 0 0.0
(read/write) 167896 167896 0 0.0
.bss 89664 89664 0 0.0
.data 3552 3552 0 0.0
.rodata 86028 86028 0 0.0
.text 652196 652196 0 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 724132 724132 0 0.0
(read/write) 168104 168104 0 0.0
.bss 89888 89888 0 0.0
.data 3544 3544 0 0.0
.rodata 81876 81876 0 0.0
.text 641988 641988 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 581242 581242 0 0.0
(read/write) 207968 207968 0 0.0
.bss 201204 201204 0 0.0
.data 1640 1640 0 0.0
.rodata 86522 86522 0 0.0
.text 492596 492596 0 0.0
lock CC3235SF_LAUNCHXL (read only) 626530 626530 0 0.0
(read/write) 208312 208312 0 0.0
.bss 201696 201696 0 0.0
.data 1496 1496 0 0.0
.rodata 106978 106978 0 0.0
.text 517428 517428 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 565139 565139 0 0.0
.app_xip_area 454989 454989 0 0.0
.bss 64984 64984 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 548115 548115 0 0.0
.app_xip_area 433205 433205 0 0.0
.bss 69736 69736 0 0.0
.data 752 752 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566659 566659 0 0.0
.app_xip_area 458013 458013 0 0.0
.bss 63520 63520 0 0.0
.data 704 704 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 561371 561371 0 0.0
.app_xip_area 449445 449445 0 0.0
.bss 66720 66720 0 0.0
.data 784 784 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 928768 928760 -8 -0.0
.bss 197896 197896 0 0.0
.data 1388 1388 0 0.0
.text 729460 729452 -8 -0.0
BRD4187C (read/write) 1105756 1105756 0 0.0
.bss 195108 195108 0 0.0
.data 3404 3404 0 0.0
.text 907224 907224 0 0.0
lock-app BRD4161A+wf200 (read/write) 1117496 1117496 0 0.0
.bss 186736 186736 0 0.0
.data 2792 2792 0 0.0
.text 927948 927948 0 0.0
window-app BRD4187C (read/write) 1152316 1152316 0 0.0
.bss 167348 167348 0 0.0
.data 3316 3316 0 0.0
.text 981632 981632 0 0.0
esp32 all-clusters-app c3devkit (read only) 1205468 1205468 0 0.0
(read/write) 1747968 1747968 0 0.0
.dram0.bss 74240 74240 0 0.0
.dram0.data 13620 13620 0 0.0
.flash.rodata 250576 250576 0 0.0
.flash.text 1205468 1205468 0 0.0
.iram0.text 75530 75530 0 0.0
m5stack (read only) 1247015 1247015 0 0.0
(read/write) 532876 532876 0 0.0
.dram0.bss 81088 81088 0 0.0
.dram0.data 35164 35164 0 0.0
.flash.rodata 280704 280704 0 0.0
.flash.text 1240851 1240851 0 0.0
.iram0.text 125403 125403 0 0.0
k32w contact k32w0+release (read only) 608360 608360 0 0.0
(read/write) 79912 79912 0 0.0
.bss 67704 67704 0 0.0
.data 2224 2224 0 0.0
.text 607824 607824 0 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 744588 744588 0 0.0
.bss 79116 79116 0 0.0
.data 2816 2816 0 0.0
.text 623288 623288 0 0.0
light k32w0+release (read only) 600000 600000 0 0.0
(read/write) 79368 79368 0 0.0
.bss 67184 67184 0 0.0
.data 2200 2200 0 0.0
.text 599464 599464 0 0.0
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 786568 786568 0 0.0
.bss 80508 80508 0 0.0
.data 2032 2032 0 0.0
.text 664672 664672 0 0.0
lock k32w0+release (read only) 579168 579168 0 0.0
(read/write) 77356 77356 0 0.0
.bss 65224 65224 0 0.0
.data 2148 2148 0 0.0
.text 578632 578632 0 0.0
linux air-purifier-app debug (read only) 2629077 2629077 0 0.0
(read/write) 129480 129480 0 0.0
.bss 46896 46896 0 0.0
.data 2240 2240 0 0.0
.data.rel.ro 74392 74392 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 184944 184944 0 0.0
.text 2266053 2266053 0 0.0
all-clusters-app debug (read only) 5892321 5892321 0 0.0
(read/write) 479488 479488 0 0.0
.bss 134688 134688 0 0.0
.data 4464 4464 0 0.0
.data.rel.ro 332936 332936 0 0.0
.dynamic 624 624 0 0.0
.got 5384 5384 0 0.0
.init 27 27 0 0.0
.init_array 1368 1368 0 0.0
.rodata 347952 347952 0 0.0
.text 5111603 5111603 0 0.0
all-clusters-minimal-app debug (read only) 5194497 5194497 0 0.0
(read/write) 236712 236712 0 0.0
.bss 128032 128032 0 0.0
.data 4368 4368 0 0.0
.data.rel.ro 97240 97240 0 0.0
.dynamic 624 624 0 0.0
.got 5304 5304 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 288162 288162 0 0.0
.text 4671299 4671299 0 0.0
bridge-app debug (read only) 4602105 4602105 0 0.0
(read/write) 217744 217744 0 0.0
.bss 118560 118560 0 0.0
.data 6176 6176 0 0.0
.data.rel.ro 86288 86288 0 0.0
.dynamic 624 624 0 0.0
.got 5272 5272 0 0.0
.init 27 27 0 0.0
.init_array 808 808 0 0.0
.rodata 228930 228930 0 0.0
.text 4152291 4152291 0 0.0
chip-tool debug (read only) 11976985 11976985 0 0.0
(read/write) 521104 521104 0 0.0
.bss 94264 94264 0 0.0
.data 5090 5090 0 0.0
.data.rel.ro 414512 414512 0 0.0
.dynamic 624 624 0 0.0
.got 5776 5776 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 447545 447545 0 0.0
.text 10823987 10823987 0 0.0
chip-tool-ipv6only arm64 (read only) 11472944 11472944 0 0.0
(read/write) 591616 591616 0 0.0
.bss 103304 103304 0 0.0
.data 4488 4488 0 0.0
.data.rel.ro 454272 454272 0 0.0
.dynamic 512 512 0 0.0
.got 20360 20360 0 0.0
.init 24 24 0 0.0
.init_array 248 248 0 0.0
.rodata 352876 352876 0 0.0
.text 10232396 10232396 0 0.0
lighting-app debug+rpc+ui (read only) 5524225 5524225 0 0.0
(read/write) 226512 226512 0 0.0
.bss 119496 119496 0 0.0
.data 4832 4832 0 0.0
.data.rel.ro 94672 94672 0 0.0
.dynamic 672 672 0 0.0
.got 5888 5888 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 353652 353652 0 0.0
.text 4923587 4923587 0 0.0
lock-app debug (read only) 4670193 4670193 0 0.0
(read/write) 205368 205368 0 0.0
.bss 113984 113984 0 0.0
.data 4128 4128 0 0.0
.data.rel.ro 80536 80536 0 0.0
.dynamic 624 624 0 0.0
.got 5224 5224 0 0.0
.init 27 27 0 0.0
.init_array 848 848 0 0.0
.rodata 254978 254978 0 0.0
.text 4202947 4202947 0 0.0
ota-provider-app debug (read only) 4302489 4302489 0 0.0
(read/write) 193896 193896 0 0.0
.bss 113792 113792 0 0.0
.data 4336 4336 0 0.0
.data.rel.ro 69856 69856 0 0.0
.dynamic 624 624 0 0.0
.got 4560 4560 0 0.0
.init 27 27 0 0.0
.init_array 704 704 0 0.0
.rodata 207618 207618 0 0.0
.text 3901411 3901411 0 0.0
ota-requestor-app debug (read only) 4418521 4418521 0 0.0
(read/write) 198144 198144 0 0.0
.bss 114688 114688 0 0.0
.data 4736 4736 0 0.0
.data.rel.ro 72816 72816 0 0.0
.dynamic 624 624 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 760 760 0 0.0
.rodata 213634 213634 0 0.0
.text 4007139 4007139 0 0.0
shell debug (read only) 2867721 2867721 0 0.0
(read/write) 155776 155776 0 0.0
.bss 62544 62544 0 0.0
.data 1392 1392 0 0.0
.data.rel.ro 86064 86064 0 0.0
.dynamic 592 592 0 0.0
.got 4080 4080 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 186080 186080 0 0.0
.text 2508546 2508546 0 0.0
thermostat-no-ble arm64 (read only) 4482776 4482776 0 0.0
(read/write) 246224 246224 0 0.0
.bss 122344 122344 0 0.0
.data 3360 3360 0 0.0
.data.rel.ro 103816 103816 0 0.0
.dynamic 512 512 0 0.0
.got 12232 12232 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 159356 159356 0 0.0
.text 3977756 3977756 0 0.0
tv-app debug (read only) 5651977 5651977 0 0.0
(read/write) 351984 351984 0 0.0
.bss 243792 243792 0 0.0
.data 6496 6496 0 0.0
.data.rel.ro 94392 94392 0 0.0
.dynamic 624 624 0 0.0
.got 5512 5512 0 0.0
.init 27 27 0 0.0
.init_array 1144 1144 0 0.0
.rodata 286498 286498 0 0.0
.text 5123315 5123315 0 0.0
tv-casting-app debug (read only) 9855929 9855929 0 0.0
(read/write) 340616 340616 0 0.0
.bss 156592 156592 0 0.0
.data 2944 2944 0 0.0
.data.rel.ro 174168 174168 0 0.0
.dynamic 624 624 0 0.0
.got 5088 5088 0 0.0
.init 27 27 0 0.0
.init_array 1168 1168 0 0.0
.rodata 382512 382512 0 0.0
.text 9007475 9007475 0 0.0
mbed lock-app-release cy8cproto_062_4343w (read only) 6224 6224 0 0.0
(read/write) 2530248 2530248 0 0.0
.bss 220432 220432 0 0.0
.data 5200 5200 0 0.0
.text 1492932 1492932 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1097336 1097336 0 0.0
bss 130745 130745 0 0.0
rodata 111616 111616 0 0.0
text 807176 807176 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1217712 1217712 0 0.0
bss 122867 122867 0 0.0
rodata 141528 141528 0 0.0
text 802808 802808 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1047092 1047092 0 0.0
bss 129641 129641 0 0.0
rodata 99316 99316 0 0.0
text 770380 770380 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834528 834528 0 0.0
(read/write) 1791412 1791412 0 0.0
.bss 196156 196156 0 0.0
.data 2656 2656 0 0.0
.text 1584212 1584212 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837632 837632 0 0.0
(read/write) 1715580 1715580 0 0.0
.bss 193076 193076 0 0.0
.data 2632 2632 0 0.0
.text 1511484 1511484 0 0.0
light cy8ckit_062s2_43012 (read only) 844360 844360 0 0.0
(read/write) 1634916 1634916 0 0.0
.bss 186540 186540 0 0.0
.data 2440 2440 0 0.0
.text 1437548 1437548 0 0.0
lock cy8ckit_062s2_43012 (read only) 817200 817200 0 0.0
(read/write) 1664908 1664908 0 0.0
.bss 213700 213700 0 0.0
.data 2440 2440 0 0.0
.text 1440380 1440380 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1125064 1125064 0 0.0
.bss 102384 102384 0 0.0
.data 820 820 0 0.0
.text 637448 637448 0 0.0
lock-app qpg6105+debug (read/write) 1085056 1085056 0 0.0
.bss 97136 97136 0 0.0
.data 840 840 0 0.0
.text 597436 597436 0 0.0
stm32 light STM32WB5MM-DK (read/write) 597565 597565 0 0.0
.bss 128296 128296 0 0.0
.data 668 668 0 0.0
.rodata 78764 78764 0 0.0
.text 380112 380112 0 0.0
telink air-quality-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 820318 820318 0 0.0
bss 49612 49612 0 0.0
text 614170 614170 0 0.0
all-clusters-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 1086416 1086416 0 0.0
bss 101696 101696 0 0.0
text 789012 789012 0 0.0
all-clusters-minimal-app tlsr9528a (read only) 47960 47960 0 0.0
(read/write) 1045540 1045540 0 0.0
bss 110036 110036 0 0.0
text 761620 761620 0 0.0
bridge-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 907328 907328 0 0.0
bss 93068 93068 0 0.0
text 650050 650050 0 0.0
contact-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 821918 821918 0 0.0
bss 49660 49660 0 0.0
text 615832 615832 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 926864 926864 0 0.0
bss 77660 77660 0 0.0
text 695292 695292 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d (read only) 29122 29122 0 0.0
(read/write) 1069036 1069036 0 0.0
bss 100148 100148 0 0.0
text 774074 774074 0 0.0
lock-app-dfu tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 900020 900020 0 0.0
bss 69124 69124 0 0.0
text 651240 651240 0 0.0
ota-requestor-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 925108 925108 0 0.0
bss 92648 92648 0 0.0
text 667942 667942 0 0.0
pump-app tlsr9258a_retention (read only) 51774 51774 0 0.0
(read/write) 824518 824518 0 0.0
bss 49768 49768 0 0.0
text 618834 618834 0 0.0
pump-controller-app tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 788232 788232 0 0.0
bss 55968 55968 0 0.0
text 589582 589582 0 0.0
shell tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 676768 676768 0 0.0
bss 73640 73640 0 0.0
text 462284 462284 0 0.0
smoke_co_alarm-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 828946 828946 0 0.0
bss 51292 51292 0 0.0
text 621894 621894 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d (read only) 32220 32220 0 0.0
(read/write) 846837 846837 0 0.0
bss 59444 59444 0 0.0
text 633014 633014 0 0.0
thermostat tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 813820 813820 0 0.0
bss 56256 56256 0 0.0
text 609214 609214 0 0.0
window-covering tlsr9258a (read only) 51584 51584 0 0.0
(read/write) 831964 831964 0 0.0
bss 68032 68032 0 0.0
text 624516 624516 0 0.0

@jtung-apple
Copy link
Contributor Author

Found an issue myself - when setDelegate is called, all existing cached values should be reported.

Copy link

github-actions bot commented Feb 16, 2024

PR #32153: Size comparison from 8d30071 to bb6fd28

Increases (4 builds for esp32, k32w)
platform target config section 8d30071 bb6fd28 change % change
esp32 all-clusters-app m5stack (read only) 1247015 1247727 712 0.1
(read/write) 532876 533460 584 0.1
.dram0.bss 81088 81144 56 0.1
.flash.rodata 280704 281232 528 0.2
.flash.text 1240851 1241563 712 0.1
k32w contact k32w0+release (read only) 608360 609552 1192 0.2
(read/write) 79912 79972 60 0.1
.bss 67704 67764 60 0.1
.text 607824 609016 1192 0.2
light k32w0+release (read only) 600000 601192 1192 0.2
(read/write) 79368 79428 60 0.1
.bss 67184 67244 60 0.1
.text 599464 600656 1192 0.2
lock k32w0+release (read only) 579168 580376 1208 0.2
(read/write) 77356 77416 60 0.1
.bss 65224 65284 60 0.1
.text 578632 579840 1208 0.2
Decreases (1 build for efr32)
platform target config section 8d30071 bb6fd28 change % change
efr32 lighting-app BRD4161A+rs9116 (read/write) 928768 928760 -8 -0.0
.text 729460 729452 -8 -0.0
Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, stm32, telink)
platform target config section 8d30071 bb6fd28 change % change
bl602 lighting-app bl602 (read/write) 1431706 1431706 0 0.0
.bss 85312 85312 0 0.0
.data 9496 9496 0 0.0
.rodata 157444 157444 0 0.0
.text 1098804 1098804 0 0.0
bl602+mfd (read/write) 1446106 1446106 0 0.0
.bss 85472 85472 0 0.0
.data 9472 9472 0 0.0
.rodata 156404 156404 0 0.0
.text 1114114 1114114 0 0.0
bl602+rpc (read/write) 1479082 1479082 0 0.0
.bss 93344 93344 0 0.0
.data 9872 9872 0 0.0
.rodata 165020 165020 0 0.0
.text 1130186 1130186 0 0.0
bl702 lighting-app bl702 (read only) 3478 3478 0 0.0
(read/write) 1196643 1196643 0 0.0
.bss 11121 11121 0 0.0
.data 3680 3680 0 0.0
.rodata 106788 106788 0 0.0
.text 968204 968204 0 0.0
bl702+mfd (read only) 3478 3478 0 0.0
(read/write) 1207443 1207443 0 0.0
.bss 11297 11297 0 0.0
.data 3656 3656 0 0.0
.rodata 105728 105728 0 0.0
.text 979958 979958 0 0.0
bl702+rpc (read only) 3478 3478 0 0.0
(read/write) 1288095 1288095 0 0.0
.bss 19589 19589 0 0.0
.data 4224 4224 0 0.0
.rodata 122160 122160 0 0.0
.text 1042892 1042892 0 0.0
bl706-eth (read/write) 1014869 1014869 0 0.0
.bss 23680 23680 0 0.0
.data 3248 3248 0 0.0
.rodata 100136 100136 0 0.0
.text 759850 759850 0 0.0
bl706-wifi (read/write) 1248098 1248098 0 0.0
.bss 10565 10565 0 0.0
.data 3688 3688 0 0.0
.rodata 121132 121132 0 0.0
.text 990322 990322 0 0.0
bl702l lighting-app bl702l (read only) 512 512 0 0.0
(read/write) 1165952 1165952 0 0.0
.bss 16316 16316 0 0.0
.data 5040 5040 0 0.0
.rodata 100792 100792 0 0.0
.text 961050 961050 0 0.0
bl702l+mfd (read only) 512 512 0 0.0
(read/write) 1177356 1177356 0 0.0
.bss 16492 16492 0 0.0
.data 5024 5024 0 0.0
.rodata 99732 99732 0 0.0
.text 973372 973372 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 780868 780868 0 0.0
(read/write) 168928 168928 0 0.0
.bss 90932 90932 0 0.0
.data 3560 3560 0 0.0
.rodata 90316 90316 0 0.0
.text 690284 690284 0 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 797660 797660 0 0.0
(read/write) 179168 179168 0 0.0
.bss 101172 101172 0 0.0
.data 3560 3560 0 0.0
.rodata 84604 84604 0 0.0
.text 712788 712788 0 0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 786300 786300 0 0.0
(read/write) 173616 173616 0 0.0
.bss 95620 95620 0 0.0
.data 3560 3560 0 0.0
.rodata 111364 111364 0 0.0
.text 674668 674668 0 0.0
pump-app LP_EM_CC1354P10_6 (read only) 738492 738492 0 0.0
(read/write) 167896 167896 0 0.0
.bss 89664 89664 0 0.0
.data 3552 3552 0 0.0
.rodata 86028 86028 0 0.0
.text 652196 652196 0 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 724132 724132 0 0.0
(read/write) 168104 168104 0 0.0
.bss 89888 89888 0 0.0
.data 3544 3544 0 0.0
.rodata 81876 81876 0 0.0
.text 641988 641988 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL (read only) 581242 581242 0 0.0
(read/write) 207968 207968 0 0.0
.bss 201204 201204 0 0.0
.data 1640 1640 0 0.0
.rodata 86522 86522 0 0.0
.text 492596 492596 0 0.0
lock CC3235SF_LAUNCHXL (read only) 626530 626530 0 0.0
(read/write) 208312 208312 0 0.0
.bss 201696 201696 0 0.0
.data 1496 1496 0 0.0
.rodata 106978 106978 0 0.0
.text 517428 517428 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 565139 565139 0 0.0
.app_xip_area 454989 454989 0 0.0
.bss 64984 64984 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 548115 548115 0 0.0
.app_xip_area 433205 433205 0 0.0
.bss 69736 69736 0 0.0
.data 752 752 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566659 566659 0 0.0
.app_xip_area 458013 458013 0 0.0
.bss 63520 63520 0 0.0
.data 704 704 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 561371 561371 0 0.0
.app_xip_area 449445 449445 0 0.0
.bss 66720 66720 0 0.0
.data 784 784 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 928768 928760 -8 -0.0
.bss 197896 197896 0 0.0
.data 1388 1388 0 0.0
.text 729460 729452 -8 -0.0
BRD4187C (read/write) 1105756 1105756 0 0.0
.bss 195108 195108 0 0.0
.data 3404 3404 0 0.0
.text 907224 907224 0 0.0
lock-app BRD4161A+wf200 (read/write) 1117496 1117496 0 0.0
.bss 186736 186736 0 0.0
.data 2792 2792 0 0.0
.text 927948 927948 0 0.0
window-app BRD4187C (read/write) 1152316 1152316 0 0.0
.bss 167348 167348 0 0.0
.data 3316 3316 0 0.0
.text 981632 981632 0 0.0
esp32 all-clusters-app c3devkit (read only) 1205468 1205468 0 0.0
(read/write) 1747968 1747968 0 0.0
.dram0.bss 74240 74240 0 0.0
.dram0.data 13620 13620 0 0.0
.flash.rodata 250576 250576 0 0.0
.flash.text 1205468 1205468 0 0.0
.iram0.text 75530 75530 0 0.0
m5stack (read only) 1247015 1247727 712 0.1
(read/write) 532876 533460 584 0.1
.dram0.bss 81088 81144 56 0.1
.dram0.data 35164 35164 0 0.0
.flash.rodata 280704 281232 528 0.2
.flash.text 1240851 1241563 712 0.1
.iram0.text 125403 125403 0 0.0
k32w contact k32w0+release (read only) 608360 609552 1192 0.2
(read/write) 79912 79972 60 0.1
.bss 67704 67764 60 0.1
.data 2224 2224 0 0.0
.text 607824 609016 1192 0.2
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 744588 744588 0 0.0
.bss 79116 79116 0 0.0
.data 2816 2816 0 0.0
.text 623288 623288 0 0.0
light k32w0+release (read only) 600000 601192 1192 0.2
(read/write) 79368 79428 60 0.1
.bss 67184 67244 60 0.1
.data 2200 2200 0 0.0
.text 599464 600656 1192 0.2
k32w1+release (read only) 1024 1024 0 0.0
(read/write) 786568 786568 0 0.0
.bss 80508 80508 0 0.0
.data 2032 2032 0 0.0
.text 664672 664672 0 0.0
lock k32w0+release (read only) 579168 580376 1208 0.2
(read/write) 77356 77416 60 0.1
.bss 65224 65284 60 0.1
.data 2148 2148 0 0.0
.text 578632 579840 1208 0.2
linux air-purifier-app debug (read only) 2629077 2629077 0 0.0
(read/write) 129480 129480 0 0.0
.bss 46896 46896 0 0.0
.data 2240 2240 0 0.0
.data.rel.ro 74392 74392 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 184944 184944 0 0.0
.text 2266053 2266053 0 0.0
all-clusters-app debug (read only) 5892321 5892321 0 0.0
(read/write) 479488 479488 0 0.0
.bss 134688 134688 0 0.0
.data 4464 4464 0 0.0
.data.rel.ro 332936 332936 0 0.0
.dynamic 624 624 0 0.0
.got 5384 5384 0 0.0
.init 27 27 0 0.0
.init_array 1368 1368 0 0.0
.rodata 347952 347952 0 0.0
.text 5111603 5111603 0 0.0
all-clusters-minimal-app debug (read only) 5194497 5194497 0 0.0
(read/write) 236712 236712 0 0.0
.bss 128032 128032 0 0.0
.data 4368 4368 0 0.0
.data.rel.ro 97240 97240 0 0.0
.dynamic 624 624 0 0.0
.got 5304 5304 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 288162 288162 0 0.0
.text 4671299 4671299 0 0.0
bridge-app debug (read only) 4602105 4602105 0 0.0
(read/write) 217744 217744 0 0.0
.bss 118560 118560 0 0.0
.data 6176 6176 0 0.0
.data.rel.ro 86288 86288 0 0.0
.dynamic 624 624 0 0.0
.got 5272 5272 0 0.0
.init 27 27 0 0.0
.init_array 808 808 0 0.0
.rodata 228930 228930 0 0.0
.text 4152291 4152291 0 0.0
chip-tool debug (read only) 11976985 11976985 0 0.0
(read/write) 521104 521104 0 0.0
.bss 94264 94264 0 0.0
.data 5090 5090 0 0.0
.data.rel.ro 414512 414512 0 0.0
.dynamic 624 624 0 0.0
.got 5776 5776 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 447545 447545 0 0.0
.text 10823987 10823987 0 0.0
chip-tool-ipv6only arm64 (read only) 11472944 11472944 0 0.0
(read/write) 591616 591616 0 0.0
.bss 103304 103304 0 0.0
.data 4488 4488 0 0.0
.data.rel.ro 454272 454272 0 0.0
.dynamic 512 512 0 0.0
.got 20360 20360 0 0.0
.init 24 24 0 0.0
.init_array 248 248 0 0.0
.rodata 352876 352876 0 0.0
.text 10232396 10232396 0 0.0
lighting-app debug+rpc+ui (read only) 5524225 5524225 0 0.0
(read/write) 226512 226512 0 0.0
.bss 119496 119496 0 0.0
.data 4832 4832 0 0.0
.data.rel.ro 94672 94672 0 0.0
.dynamic 672 672 0 0.0
.got 5888 5888 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 353652 353652 0 0.0
.text 4923587 4923587 0 0.0
lock-app debug (read only) 4670193 4670193 0 0.0
(read/write) 205368 205368 0 0.0
.bss 113984 113984 0 0.0
.data 4128 4128 0 0.0
.data.rel.ro 80536 80536 0 0.0
.dynamic 624 624 0 0.0
.got 5224 5224 0 0.0
.init 27 27 0 0.0
.init_array 848 848 0 0.0
.rodata 254978 254978 0 0.0
.text 4202947 4202947 0 0.0
ota-provider-app debug (read only) 4302489 4302489 0 0.0
(read/write) 193896 193896 0 0.0
.bss 113792 113792 0 0.0
.data 4336 4336 0 0.0
.data.rel.ro 69856 69856 0 0.0
.dynamic 624 624 0 0.0
.got 4560 4560 0 0.0
.init 27 27 0 0.0
.init_array 704 704 0 0.0
.rodata 207618 207618 0 0.0
.text 3901411 3901411 0 0.0
ota-requestor-app debug (read only) 4418521 4418521 0 0.0
(read/write) 198144 198144 0 0.0
.bss 114688 114688 0 0.0
.data 4736 4736 0 0.0
.data.rel.ro 72816 72816 0 0.0
.dynamic 624 624 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 760 760 0 0.0
.rodata 213634 213634 0 0.0
.text 4007139 4007139 0 0.0
shell debug (read only) 2867721 2867721 0 0.0
(read/write) 155776 155776 0 0.0
.bss 62544 62544 0 0.0
.data 1392 1392 0 0.0
.data.rel.ro 86064 86064 0 0.0
.dynamic 592 592 0 0.0
.got 4080 4080 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 186080 186080 0 0.0
.text 2508546 2508546 0 0.0
thermostat-no-ble arm64 (read only) 4482776 4482776 0 0.0
(read/write) 246224 246224 0 0.0
.bss 122344 122344 0 0.0
.data 3360 3360 0 0.0
.data.rel.ro 103816 103816 0 0.0
.dynamic 512 512 0 0.0
.got 12232 12232 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 159356 159356 0 0.0
.text 3977756 3977756 0 0.0
tv-app debug (read only) 5651977 5651977 0 0.0
(read/write) 351984 351984 0 0.0
.bss 243792 243792 0 0.0
.data 6496 6496 0 0.0
.data.rel.ro 94392 94392 0 0.0
.dynamic 624 624 0 0.0
.got 5512 5512 0 0.0
.init 27 27 0 0.0
.init_array 1144 1144 0 0.0
.rodata 286498 286498 0 0.0
.text 5123315 5123315 0 0.0
tv-casting-app debug (read only) 9855929 9855929 0 0.0
(read/write) 340616 340616 0 0.0
.bss 156592 156592 0 0.0
.data 2944 2944 0 0.0
.data.rel.ro 174168 174168 0 0.0
.dynamic 624 624 0 0.0
.got 5088 5088 0 0.0
.init 27 27 0 0.0
.init_array 1168 1168 0 0.0
.rodata 382512 382512 0 0.0
.text 9007475 9007475 0 0.0
mbed lock-app-release cy8cproto_062_4343w (read only) 6224 6224 0 0.0
(read/write) 2530248 2530248 0 0.0
.bss 220432 220432 0 0.0
.data 5200 5200 0 0.0
.text 1492932 1492932 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1097336 1097336 0 0.0
bss 130745 130745 0 0.0
rodata 111616 111616 0 0.0
text 807176 807176 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1217712 1217712 0 0.0
bss 122867 122867 0 0.0
rodata 141528 141528 0 0.0
text 802808 802808 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1047092 1047092 0 0.0
bss 129641 129641 0 0.0
rodata 99316 99316 0 0.0
text 770380 770380 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 834528 834528 0 0.0
(read/write) 1791412 1791412 0 0.0
.bss 196156 196156 0 0.0
.data 2656 2656 0 0.0
.text 1584212 1584212 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 837632 837632 0 0.0
(read/write) 1715580 1715580 0 0.0
.bss 193076 193076 0 0.0
.data 2632 2632 0 0.0
.text 1511484 1511484 0 0.0
light cy8ckit_062s2_43012 (read only) 844360 844360 0 0.0
(read/write) 1634916 1634916 0 0.0
.bss 186540 186540 0 0.0
.data 2440 2440 0 0.0
.text 1437548 1437548 0 0.0
lock cy8ckit_062s2_43012 (read only) 817200 817200 0 0.0
(read/write) 1664908 1664908 0 0.0
.bss 213700 213700 0 0.0
.data 2440 2440 0 0.0
.text 1440380 1440380 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1125064 1125064 0 0.0
.bss 102384 102384 0 0.0
.data 820 820 0 0.0
.text 637448 637448 0 0.0
lock-app qpg6105+debug (read/write) 1085056 1085056 0 0.0
.bss 97136 97136 0 0.0
.data 840 840 0 0.0
.text 597436 597436 0 0.0
stm32 light STM32WB5MM-DK (read/write) 597565 597565 0 0.0
.bss 128296 128296 0 0.0
.data 668 668 0 0.0
.rodata 78764 78764 0 0.0
.text 380112 380112 0 0.0
telink air-quality-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 820318 820318 0 0.0
bss 49612 49612 0 0.0
text 614170 614170 0 0.0
all-clusters-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 1086416 1086416 0 0.0
bss 101696 101696 0 0.0
text 789012 789012 0 0.0
all-clusters-minimal-app tlsr9528a (read only) 47960 47960 0 0.0
(read/write) 1045540 1045540 0 0.0
bss 110036 110036 0 0.0
text 761620 761620 0 0.0
bridge-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 907328 907328 0 0.0
bss 93068 93068 0 0.0
text 650050 650050 0 0.0
contact-sensor-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 821918 821918 0 0.0
bss 49660 49660 0 0.0
text 615832 615832 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 926864 926864 0 0.0
bss 77660 77660 0 0.0
text 695292 695292 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d (read only) 29122 29122 0 0.0
(read/write) 1069036 1069036 0 0.0
bss 100148 100148 0 0.0
text 774074 774074 0 0.0
lock-app-dfu tlsr9528a (read only) 51584 51584 0 0.0
(read/write) 900020 900020 0 0.0
bss 69124 69124 0 0.0
text 651240 651240 0 0.0
ota-requestor-app tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 925108 925108 0 0.0
bss 92648 92648 0 0.0
text 667942 667942 0 0.0
pump-app tlsr9258a_retention (read only) 51774 51774 0 0.0
(read/write) 824518 824518 0 0.0
bss 49768 49768 0 0.0
text 618834 618834 0 0.0
pump-controller-app tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 788232 788232 0 0.0
bss 55968 55968 0 0.0
text 589582 589582 0 0.0
shell tlsr9518adk80d (read only) 29042 29042 0 0.0
(read/write) 676768 676768 0 0.0
bss 73640 73640 0 0.0
text 462284 462284 0 0.0
smoke_co_alarm-app tlsr9528a_retention (read only) 51774 51774 0 0.0
(read/write) 828946 828946 0 0.0
bss 51292 51292 0 0.0
text 621894 621894 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d (read only) 32220 32220 0 0.0
(read/write) 846837 846837 0 0.0
bss 59444 59444 0 0.0
text 633014 633014 0 0.0
thermostat tlsr9518adk80d (read only) 31872 31872 0 0.0
(read/write) 813820 813820 0 0.0
bss 56256 56256 0 0.0
text 609214 609214 0 0.0
window-covering tlsr9258a (read only) 51584 51584 0 0.0
(read/write) 831964 831964 0 0.0
bss 68032 68032 0 0.0
text 624516 624516 0 0.0

@jtung-apple jtung-apple merged commit 5bb92b6 into project-chip:master Feb 16, 2024
58 checks passed
// Convert TLV data into data-value dictionary as described in MTRDeviceResponseHandler
NSDictionary<NSString *, id> * _Nullable MTRDecodeDataValueDictionaryFromCHIPTLV(chip::TLV::TLVReader * data)
NSDictionary<NSString *, id> * _Nullable MTRDecodeDataValueDictionaryFromCHIPTLV(chip::TLV::TLVReader * data, NSNumber * dataVersion)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last arg should be annotated nullable, no?

*
* The data-value dictionary also contains this key:
*
* MTRDataVersionKey : NSNumber-wrapped uin32_t. Monotonically increaseing data version for the cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"increasing".

Also, "monotonically increasing" is somewhere between "misleading" and "wrong". We should not claim it's increasing in our API documentation. It can easily decrease.

- (NSDictionary<MTRClusterPath *, NSNumber *> *)_getCachedDataVersions
{
NSMutableDictionary<MTRClusterPath *, NSNumber *> * dataVersions = [NSMutableDictionary dictionary];
os_unfair_lock_lock(&self->_lock);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider using std::lock_guard. See MTRUnfairLock.h.

Comment on lines +659 to +660
// Use the highest data version
if (currentDataVersion.unsignedLongValue < dataVersionNumber.unsignedLongValue) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we clear out the data versions in _readCache when we resubscribe or something? If not, this is broken.

More to the point, we should be tracking data versions for clusters, not individual attributes, precisely because there is no way to tell after the fact which data version value is "newer".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants