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

[IM] Record LastReportTick and DirtyTick in ReadHandler #16060

Merged
merged 13 commits into from
Mar 28, 2022

Conversation

erjiaqing
Copy link
Contributor

Problem

Fixes #15975

During priming report, the report might be large, and if there are any attributes changed during the report, we will do a full regeneration, makes the report unable to finish.

Change overview

  • Only regenerate the attributes under the current generating cluster (and only when needed)
  • For any other attribute change, we record a timestamp, and report it the next time we are generating the reports.

Testing

  • Updates existing tests for SetDirty and Regeneration

src/controller/tests/TestReadChunking.cpp Outdated Show resolved Hide resolved
src/controller/tests/TestReadChunking.cpp Outdated Show resolved Hide resolved
src/controller/tests/TestReadChunking.cpp Outdated Show resolved Hide resolved
src/controller/tests/TestReadChunking.cpp Outdated Show resolved Hide resolved
src/controller/tests/TestReadChunking.cpp Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Mar 25, 2022

PR #16060: Size comparison from 4ea2bae to 41ab797

Increases above 0.2%:

platform target config section 4ea2bae 41ab797 change % change
cyw30739 light cyw930739m2evb_01 .bss 75576 75816 240 0.3
lock cyw930739m2evb_01 .bss 74080 74320 240 0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 .bss 83408 83648 240 0.3
esp32 all-clusters-app c3devkit .dram0.bss 61992 62232 240 0.4
m5stack .dram0.bss 67520 67760 240 0.4
k32w light k32w061+release .bss 77568 77808 240 0.3
lock k32w061+release .bss 77544 77784 240 0.3
telink lighting-app tlsr9518adk80d bss 87356 87596 240 0.3
Increases (18 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 4ea2bae 41ab797 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 604482 605106 624 0.1
.app_xip_area 511652 512036 384 0.1
.bss 75576 75816 240 0.3
lock cyw930739m2evb_01 (read/write) 562270 562894 624 0.1
.app_xip_area 470968 471352 384 0.1
.bss 74080 74320 240 0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 574634 575242 608 0.1
.app_xip_area 473684 474052 368 0.1
.bss 83408 83648 240 0.3
efr32 lighting-app BRD4161A (read only) 925504 926320 816 0.1
(read/write) 128688 128928 240 0.2
.bss 126688 126928 240 0.2
.text 925496 926312 816 0.1
BRD4161A+rpc (read only) 954320 955136 816 0.1
(read/write) 144640 144880 240 0.2
.bss 142464 142704 240 0.2
.text 954312 955128 816 0.1
window-app BRD4161A (read only) 854900 855732 832 0.1
(read/write) 126648 126888 240 0.2
.bss 124776 125016 240 0.2
.text 854892 855724 832 0.1
esp32 all-clusters-app c3devkit (read only) 965630 966224 594 0.1
(read/write) 1394162 1394634 472 0.0
.dram0.bss 61992 62232 240 0.4
.flash.rodata 199032 199264 232 0.1
.flash.text 965630 966224 594 0.1
m5stack (read only) 1022107 1022679 572 0.1
(read/write) 461908 462380 472 0.1
.dram0.bss 67520 67760 240 0.4
.flash.rodata 228528 228760 232 0.1
.flash.text 1016723 1017295 572 0.1
k32w light k32w061+release (read/write) 703000 703904 904 0.1
.bss 77568 77808 240 0.3
.text 617756 618420 664 0.1
lock k32w061+release (read/write) 702068 703004 936 0.1
.bss 77544 77784 240 0.3
.text 616808 617504 696 0.1
linux chip-tool-ipv6only arm64 (read/write) 473889 473921 32 0.0
.got 55464 55488 24 0.0
.rodata 494020 494356 336 0.1
thermostat-no-ble arm64 (read only) 2269668 2270964 1296 0.1
(read/write) 148385 148401 16 0.0
.bss 62833 62849 16 0.0
.rodata 139716 139956 240 0.2
.text 1906544 1907600 1056 0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2354708 2355388 680 0.0
.bss 184572 184812 240 0.1
.text 1317308 1317988 680 0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1140943 1141851 908 0.1
bss 142500 142740 240 0.2
rodata 142040 142276 236 0.2
text 781524 781948 424 0.1
p6 all-clusters-app default (read/write) 2496728 2497560 832 0.0
.bss 117992 118232 240 0.2
.text 1454992 1455824 832 0.1
light-app default (read/write) 2399104 2399936 832 0.0
.bss 111464 111704 240 0.2
.text 1357368 1358200 832 0.1
lock-app default (read/write) 2362632 2363464 832 0.0
.bss 111208 111448 240 0.2
.text 1320896 1321728 832 0.1
telink lighting-app tlsr9518adk80d (read/write) 897470 898534 1064 0.1
bss 87356 87596 240 0.3
text 634874 635460 586 0.1
Decreases (1 build for linux)
platform target config section 4ea2bae 41ab797 change % change
linux chip-tool-ipv6only arm64 (read only) 9836652 9818828 -17824 -0.2
.text 8289012 8270772 -18240 -0.2
Full report (18 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 4ea2bae 41ab797 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 604482 605106 624 0.1
.app_xip_area 511652 512036 384 0.1
.bss 75576 75816 240 0.3
.data 604 604 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 562270 562894 624 0.1
.app_xip_area 470968 471352 384 0.1
.bss 74080 74320 240 0.3
.data 568 568 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 574634 575242 608 0.1
.app_xip_area 473684 474052 368 0.1
.bss 83408 83648 240 0.3
.data 508 508 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 925504 926320 816 0.1
(read/write) 128688 128928 240 0.2
.bss 126688 126928 240 0.2
.data 1996 1996 0 0.0
.text 925496 926312 816 0.1
BRD4161A+rpc (read only) 954320 955136 816 0.1
(read/write) 144640 144880 240 0.2
.bss 142464 142704 240 0.2
.data 2176 2176 0 0.0
.text 954312 955128 816 0.1
window-app BRD4161A (read only) 854900 855732 832 0.1
(read/write) 126648 126888 240 0.2
.bss 124776 125016 240 0.2
.data 1872 1872 0 0.0
.text 854892 855724 832 0.1
esp32 all-clusters-app c3devkit (read only) 965630 966224 594 0.1
(read/write) 1394162 1394634 472 0.0
.dram0.bss 61992 62232 240 0.4
.dram0.data 14212 14212 0 0.0
.flash.rodata 199032 199264 232 0.1
.flash.text 965630 966224 594 0.1
.iram0.text 62016 62016 0 0.0
m5stack (read only) 1022107 1022679 572 0.1
(read/write) 461908 462380 472 0.1
.dram0.bss 67520 67760 240 0.4
.dram0.data 34024 34024 0 0.0
.flash.rodata 228528 228760 232 0.1
.flash.text 1016723 1017295 572 0.1
.iram0.text 123107 123107 0 0.0
k32w light k32w061+release (read/write) 703000 703904 904 0.1
.bss 77568 77808 240 0.3
.data 1876 1876 0 0.0
.text 617756 618420 664 0.1
lock k32w061+release (read/write) 702068 703004 936 0.1
.bss 77544 77784 240 0.3
.data 1916 1916 0 0.0
.text 616808 617504 696 0.1
linux chip-tool-ipv6only arm64 (read only) 9836652 9818828 -17824 -0.2
(read/write) 473889 473921 32 0.0
.bss 40769 40769 0 0.0
.data 1144 1144 0 0.0
.data.rel.ro 372712 372712 0 0.0
.dynamic 560 560 0 0.0
.got 55464 55488 24 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 494020 494356 336 0.1
.text 8289012 8270772 -18240 -0.2
thermostat-no-ble arm64 (read only) 2269668 2270964 1296 0.1
(read/write) 148385 148401 16 0.0
.bss 62833 62849 16 0.0
.data 1040 1040 0 0.0
.data.rel.ro 77000 77000 0 0.0
.dynamic 560 560 0 0.0
.got 4504 4504 0 0.0
.init 24 24 0 0.0
.init_array 360 360 0 0.0
.rodata 139716 139956 240 0.2
.text 1906544 1907600 1056 0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2354708 2355388 680 0.0
.bss 184572 184812 240 0.1
.data 5760 5760 0 0.0
.text 1317308 1317988 680 0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1140943 1141851 908 0.1
bss 142500 142740 240 0.2
rodata 142040 142276 236 0.2
text 781524 781948 424 0.1
p6 all-clusters-app default (read/write) 2496728 2497560 832 0.0
.bss 117992 118232 240 0.2
.data 2640 2640 0 0.0
.text 1454992 1455824 832 0.1
light-app default (read/write) 2399104 2399936 832 0.0
.bss 111464 111704 240 0.2
.data 2496 2496 0 0.0
.text 1357368 1358200 832 0.1
lock-app default (read/write) 2362632 2363464 832 0.0
.bss 111208 111448 240 0.2
.data 2456 2456 0 0.0
.text 1320896 1321728 832 0.1
telink lighting-app tlsr9518adk80d (read/write) 897470 898534 1064 0.1
bss 87356 87596 240 0.3
noinit 37160 37160 0 0.0
text 634874 635460 586 0.1

@github-actions
Copy link

github-actions bot commented Mar 25, 2022

PR #16060: Size comparison from 197f65f to 7952064

Increases above 0.2%:

platform target config section 197f65f 7952064 change % change
cyw30739 light cyw930739m2evb_01 .bss 75576 75816 240 0.3
lock cyw930739m2evb_01 .bss 74080 74320 240 0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 .bss 83408 83648 240 0.3
esp32 all-clusters-app c3devkit .dram0.bss 61992 62232 240 0.4
m5stack .dram0.bss 67520 67760 240 0.4
k32w light k32w061+release .bss 77568 77808 240 0.3
lock k32w061+release .bss 77544 77784 240 0.3
telink lighting-app tlsr9518adk80d bss 87356 87596 240 0.3
Increases (27 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 197f65f 7952064 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 604482 605106 624 0.1
.app_xip_area 511652 512036 384 0.1
.bss 75576 75816 240 0.3
lock cyw930739m2evb_01 (read/write) 562270 562894 624 0.1
.app_xip_area 470968 471352 384 0.1
.bss 74080 74320 240 0.3
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 574618 575242 624 0.1
.app_xip_area 473668 474052 384 0.1
.bss 83408 83648 240 0.3
efr32 lighting-app BRD4161A (read only) 925488 926320 832 0.1
(read/write) 128688 128928 240 0.2
.bss 126688 126928 240 0.2
.text 925480 926312 832 0.1
BRD4161A+rpc (read only) 954304 955136 832 0.1
(read/write) 144640 144880 240 0.2
.bss 142464 142704 240 0.2
.text 954296 955128 832 0.1
window-app BRD4161A (read only) 854900 855732 832 0.1
(read/write) 126648 126888 240 0.2
.bss 124776 125016 240 0.2
.text 854892 855724 832 0.1
esp32 all-clusters-app c3devkit (read only) 965630 966224 594 0.1
(read/write) 1394162 1394634 472 0.0
.dram0.bss 61992 62232 240 0.4
.flash.rodata 199032 199264 232 0.1
.flash.text 965630 966224 594 0.1
m5stack (read only) 1022107 1022679 572 0.1
(read/write) 461908 462380 472 0.1
.dram0.bss 67520 67760 240 0.4
.flash.rodata 228528 228760 232 0.1
.flash.text 1016723 1017295 572 0.1
k32w light k32w061+release (read/write) 702984 703904 920 0.1
.bss 77568 77808 240 0.3
.text 617740 618420 680 0.1
lock k32w061+release (read/write) 702068 703004 936 0.1
.bss 77544 77784 240 0.3
.text 616808 617504 696 0.1
linux all-clusters-app debug (read only) 2487873 2489329 1456 0.1
.rodata 212229 212485 256 0.1
.text 2111922 2113122 1200 0.1
bridge-app debug+rpc (read only) 1760133 1761589 1456 0.1
.rodata 144268 144524 256 0.2
.text 1500629 1501829 1200 0.1
chip-tool debug (read only) 10195021 10196509 1488 0.0
.rodata 518901 519157 256 0.0
.text 8891589 8892821 1232 0.0
chip-tool-ipv6only arm64 (read only) 9817484 9818828 1344 0.0
.rodata 494116 494356 240 0.0
.text 8269668 8270772 1104 0.0
door-lock-app debug (read only) 2012145 2013601 1456 0.1
.rodata 180956 181212 256 0.1
.text 1681506 1682706 1200 0.1
lighting-app debug+rpc (read only) 2185993 2187449 1456 0.1
.rodata 174972 175228 256 0.1
.text 1851954 1853154 1200 0.1
ota-provider-app debug (read only) 1953337 1954793 1456 0.1
.rodata 166699 166955 256 0.2
.text 1634898 1636098 1200 0.1
ota-requestor-app debug (read only) 1980929 1982385 1456 0.1
.rodata 162820 163076 256 0.2
.text 1665362 1666562 1200 0.1
shell debug (read only) 2436633 2438089 1456 0.1
.rodata 209682 209938 256 0.1
.text 2070082 2071282 1200 0.1
thermostat-no-ble arm64 (read only) 2269668 2270964 1296 0.1
(read/write) 148385 148401 16 0.0
.bss 62833 62849 16 0.0
.rodata 139716 139956 240 0.2
.text 1906544 1907600 1056 0.1
tv-app debug (read only) 2682961 2684417 1456 0.1
.rodata 205611 205867 256 0.1
.text 2302722 2303922 1200 0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2354708 2355388 680 0.0
.bss 184572 184812 240 0.1
.text 1317308 1317988 680 0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1140927 1141851 924 0.1
bss 142500 142740 240 0.2
rodata 142040 142276 236 0.2
text 781512 781948 436 0.1
p6 all-clusters-app default (read/write) 2496728 2497560 832 0.0
.bss 117992 118232 240 0.2
.text 1454992 1455824 832 0.1
light-app default (read/write) 2399104 2399936 832 0.0
.bss 111464 111704 240 0.2
.text 1357368 1358200 832 0.1
lock-app default (read/write) 2362632 2363464 832 0.0
.bss 111208 111448 240 0.2
.text 1320896 1321728 832 0.1
telink lighting-app tlsr9518adk80d (read/write) 897470 898534 1064 0.1
bss 87356 87596 240 0.3
text 634874 635460 586 0.1
Full report (27 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 197f65f 7952064 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 604482 605106 624 0.1
.app_xip_area 511652 512036 384 0.1
.bss 75576 75816 240 0.3
.data 604 604 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 562270 562894 624 0.1
.app_xip_area 470968 471352 384 0.1
.bss 74080 74320 240 0.3
.data 568 568 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 574618 575242 624 0.1
.app_xip_area 473668 474052 384 0.1
.bss 83408 83648 240 0.3
.data 508 508 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 925488 926320 832 0.1
(read/write) 128688 128928 240 0.2
.bss 126688 126928 240 0.2
.data 1996 1996 0 0.0
.text 925480 926312 832 0.1
BRD4161A+rpc (read only) 954304 955136 832 0.1
(read/write) 144640 144880 240 0.2
.bss 142464 142704 240 0.2
.data 2176 2176 0 0.0
.text 954296 955128 832 0.1
window-app BRD4161A (read only) 854900 855732 832 0.1
(read/write) 126648 126888 240 0.2
.bss 124776 125016 240 0.2
.data 1872 1872 0 0.0
.text 854892 855724 832 0.1
esp32 all-clusters-app c3devkit (read only) 965630 966224 594 0.1
(read/write) 1394162 1394634 472 0.0
.dram0.bss 61992 62232 240 0.4
.dram0.data 14212 14212 0 0.0
.flash.rodata 199032 199264 232 0.1
.flash.text 965630 966224 594 0.1
.iram0.text 62016 62016 0 0.0
m5stack (read only) 1022107 1022679 572 0.1
(read/write) 461908 462380 472 0.1
.dram0.bss 67520 67760 240 0.4
.dram0.data 34024 34024 0 0.0
.flash.rodata 228528 228760 232 0.1
.flash.text 1016723 1017295 572 0.1
.iram0.text 123107 123107 0 0.0
k32w light k32w061+release (read/write) 702984 703904 920 0.1
.bss 77568 77808 240 0.3
.data 1876 1876 0 0.0
.text 617740 618420 680 0.1
lock k32w061+release (read/write) 702068 703004 936 0.1
.bss 77544 77784 240 0.3
.data 1916 1916 0 0.0
.text 616808 617504 696 0.1
linux all-clusters-app debug (read only) 2487873 2489329 1456 0.1
(read/write) 143344 143344 0 0.0
.bss 57408 57408 0 0.0
.data 1280 1280 0 0.0
.data.rel.ro 78920 78920 0 0.0
.dynamic 592 592 0 0.0
.got 4176 4176 0 0.0
.init 27 27 0 0.0
.init_array 936 936 0 0.0
.rodata 212229 212485 256 0.1
.text 2111922 2113122 1200 0.1
bridge-app debug+rpc (read only) 1760133 1761589 1456 0.1
(read/write) 89552 89552 0 0.0
.bss 44552 44552 0 0.0
.data 1984 1984 0 0.0
.data.rel.ro 37936 37936 0 0.0
.dynamic 592 592 0 0.0
.got 3920 3920 0 0.0
.init 27 27 0 0.0
.init_array 544 544 0 0.0
.rodata 144268 144524 256 0.2
.text 1500629 1501829 1200 0.1
chip-tool debug (read only) 10195021 10196509 1488 0.0
(read/write) 355720 355720 0 0.0
.bss 22496 22496 0 0.0
.data 1072 1072 0 0.0
.data.rel.ro 326056 326056 0 0.0
.dynamic 608 608 0 0.0
.got 4816 4816 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 518901 519157 256 0.0
.text 8891589 8892821 1232 0.0
chip-tool-ipv6only arm64 (read only) 9817484 9818828 1344 0.0
(read/write) 473921 473921 0 0.0
.bss 40769 40769 0 0.0
.data 1144 1144 0 0.0
.data.rel.ro 372712 372712 0 0.0
.dynamic 560 560 0 0.0
.got 55488 55488 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 494116 494356 240 0.0
.text 8269668 8270772 1104 0.0
door-lock-app debug (read only) 2012145 2013601 1456 0.1
(read/write) 116896 116896 0 0.0
.bss 47680 47680 0 0.0
.data 992 992 0 0.0
.data.rel.ro 62840 62840 0 0.0
.dynamic 592 592 0 0.0
.got 4120 4120 0 0.0
.init 27 27 0 0.0
.init_array 664 664 0 0.0
.rodata 180956 181212 256 0.1
.text 1681506 1682706 1200 0.1
lighting-app debug+rpc (read only) 2185993 2187449 1456 0.1
(read/write) 123888 123888 0 0.0
.bss 48960 48960 0 0.0
.data 1472 1472 0 0.0
.data.rel.ro 67928 67928 0 0.0
.dynamic 608 608 0 0.0
.got 4168 4168 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 174972 175228 256 0.1
.text 1851954 1853154 1200 0.1
ota-provider-app debug (read only) 1953337 1954793 1456 0.1
(read/write) 112688 112688 0 0.0
.bss 47616 47616 0 0.0
.data 1256 1256 0 0.0
.data.rel.ro 58184 58184 0 0.0
.dynamic 608 608 0 0.0
.got 4376 4376 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 166699 166955 256 0.2
.text 1634898 1636098 1200 0.1
ota-requestor-app debug (read only) 1980929 1982385 1456 0.1
(read/write) 115912 115912 0 0.0
.bss 48544 48544 0 0.0
.data 1480 1480 0 0.0
.data.rel.ro 60440 60440 0 0.0
.dynamic 592 592 0 0.0
.got 4184 4184 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 162820 163076 256 0.2
.text 1665362 1666562 1200 0.1
shell debug (read only) 2436633 2438089 1456 0.1
(read/write) 147400 147400 0 0.0
.bss 67336 67336 0 0.0
.data 800 800 0 0.0
.data.rel.ro 73568 73568 0 0.0
.dynamic 592 592 0 0.0
.got 4152 4152 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 209682 209938 256 0.1
.text 2070082 2071282 1200 0.1
thermostat-no-ble arm64 (read only) 2269668 2270964 1296 0.1
(read/write) 148385 148401 16 0.0
.bss 62833 62849 16 0.0
.data 1040 1040 0 0.0
.data.rel.ro 77000 77000 0 0.0
.dynamic 560 560 0 0.0
.got 4504 4504 0 0.0
.init 24 24 0 0.0
.init_array 360 360 0 0.0
.rodata 139716 139956 240 0.2
.text 1906544 1907600 1056 0.1
tv-app debug (read only) 2682961 2684417 1456 0.1
(read/write) 247552 247552 0 0.0
.bss 164320 164320 0 0.0
.data 3136 3136 0 0.0
.data.rel.ro 74048 74048 0 0.0
.dynamic 592 592 0 0.0
.got 4552 4552 0 0.0
.init 27 27 0 0.0
.init_array 888 888 0 0.0
.rodata 205611 205867 256 0.1
.text 2302722 2303922 1200 0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2354708 2355388 680 0.0
.bss 184572 184812 240 0.1
.data 5760 5760 0 0.0
.text 1317308 1317988 680 0.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1140927 1141851 924 0.1
bss 142500 142740 240 0.2
rodata 142040 142276 236 0.2
text 781512 781948 436 0.1
p6 all-clusters-app default (read/write) 2496728 2497560 832 0.0
.bss 117992 118232 240 0.2
.data 2640 2640 0 0.0
.text 1454992 1455824 832 0.1
light-app default (read/write) 2399104 2399936 832 0.0
.bss 111464 111704 240 0.2
.data 2496 2496 0 0.0
.text 1357368 1358200 832 0.1
lock-app default (read/write) 2362632 2363464 832 0.0
.bss 111208 111448 240 0.2
.data 2456 2456 0 0.0
.text 1320896 1321728 832 0.1
telink lighting-app tlsr9518adk80d (read/write) 897470 898534 1064 0.1
bss 87356 87596 240 0.3
noinit 37160 37160 0 0.0
text 634874 635460 586 0.1

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

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

There are some naming and comment fixes, but generally this looks quite good, thank you!

I did not review the TestReadChunking changes carefully...

src/app/AttributePathExpandIterator.cpp Outdated Show resolved Hide resolved
src/app/AttributePathExpandIterator.cpp Outdated Show resolved Hide resolved
src/app/AttributePathExpandIterator.cpp Outdated Show resolved Hide resolved
src/app/AttributePathExpandIterator.h Outdated Show resolved Hide resolved
src/app/ReadHandler.cpp Outdated Show resolved Hide resolved
src/app/reporting/Engine.h Outdated Show resolved Hide resolved
src/app/reporting/Engine.h Outdated Show resolved Hide resolved
src/app/reporting/Engine.h Outdated Show resolved Hide resolved
src/app/reporting/Engine.h Outdated Show resolved Hide resolved
src/app/tests/TestReadInteraction.cpp Outdated Show resolved Hide resolved
@woody-apple
Copy link
Contributor

/rebase

@woody-apple
Copy link
Contributor

Fast tracking given this has had > 3 days for review.

@erjiaqing erjiaqing merged commit 125e73c into project-chip:master Mar 28, 2022
@erjiaqing erjiaqing deleted the im/issue15975 branch March 28, 2022 09:59
// Here we just reset the iterator to the beginning of the current cluster, if the dirty path affects it.
// This will ensure the reports are consistent within a single cluster generated from a single path in the request.

// TODO (#16699): Currently we can only gurentee the reports generated from a single path in the request are consistent. The
Copy link
Contributor

Choose a reason for hiding this comment

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

"guarantee", not "gurentee".

Comment on lines +303 to +309
// For subscriptions, we record the dirty set generation when we started to generate the last report.
// The mCurrentReportsBeginGeneration records the generation at the start of the current report. This only/
// has a meaningful value while IsReporting() is true.
//
// mPreviousReportsBeginGeneration will be set to mCurrentReportsBeginGeneration after we send the last
// chunk of the current report. Anything that was dirty with a generation earlier than
// mPreviousReportsBeginGeneration has had its value sent to the client.
Copy link
Contributor

Choose a reason for hiding this comment

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

This does not look like the right comment for mForceDirty. Merge issue?

Comment on lines +311 to +315
// For subscriptions, we record the timestamp when we started to generate the last report.
// The mCurrentReportsBeginGeneration records the timestamp for the current report, which won;t be used for checking if this
// ReadHandler is dirty.
// mPreviousReportsBeginGeneration will be set to mCurrentReportsBeginGeneration after we sent the last chunk of the current
// report.
Copy link
Contributor

Choose a reason for hiding this comment

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

This is where the comment that's above mForceDirty should be...

rochaferraz pushed a commit to rochaferraz/connectedhomeip that referenced this pull request Mar 31, 2022
…#16060)

* [IM] Record LastRecordTimestamp and DirtyTimestamp in ReadHandler

* Update naming and comments

* Add more tests

* Fix

* Update tests

* Address comments

* Resolve compile error

* Drive IO for a bit longer time

* Address comments

* Lift timelimit for darwin

* Tick -> Generation
andrei-menzopol pushed a commit to andrei-menzopol/connectedhomeip that referenced this pull request Apr 14, 2022
…#16060)

* [IM] Record LastRecordTimestamp and DirtyTimestamp in ReadHandler

* Update naming and comments

* Add more tests

* Fix

* Update tests

* Address comments

* Resolve compile error

* Drive IO for a bit longer time

* Address comments

* Lift timelimit for darwin

* Tick -> Generation
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.

Wildcard Reporting with iOS chiptool fails -M5 temp updates do not reflect in chiptool
4 participants