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

Add IsSelectResultValid to LayerImplSelect #13776

Merged
merged 2 commits into from
Jan 21, 2022

Conversation

alexhqwang
Copy link
Contributor

Problem

What is being fixed?
A POSIX build target that does not run the typical event loop may require more flexibility from the LayerImplSelect API.

For example, consider a Linux simulator for a non-Linux device. The device implementation of PlatformManager would not be capable of blocking on select. However, the simulator would need to process SystemLayer socket events. Naturally one reaches for the public LayerSocketLoop API to "peek" on the sockets and process the events ad hoc, but to do so it needs a way to check if WaitForEvents was successful.

Change overview

Provide a method to check if select failed before calling HandleEvents when polling sockets.

Testing

How was this tested? (at least one bullet point required)

  • This does not introduce any logical change for existing tests.
  • This was manually tested using the Cirque framework, by running mobile-device-test.py against a device simulator (see example above).

@github-actions
Copy link

github-actions bot commented Jan 20, 2022

PR #13776: Size comparison from fa0b36f to 3cdd00a

Increases (2 builds for linux)
platform target config section fa0b36f 3cdd00a change % change
linux chip-tool-ipv6only arm64 (read only) 8377644 8377676 32 0.0
.text 7119508 7119540 32 0.0
thermostat-no-ble arm64 (read only) 2040876 2040908 32 0.0
.text 1696688 1696720 32 0.0
Full report (30 builds for efr32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section fa0b36f 3cdd00a change % change
efr32 lighting-app BRD4161A (read only) 832748 832748 0 0.0
(read/write) 127032 127032 0 0.0
.bss 125136 125136 0 0.0
.data 1896 1896 0 0.0
.text 832740 832740 0 0.0
BRD4161A+rpc (read only) 820128 820128 0 0.0
(read/write) 143696 143696 0 0.0
.bss 141696 141696 0 0.0
.data 1996 1996 0 0.0
.text 820120 820120 0 0.0
window-app BRD4161A (read only) 803316 803316 0 0.0
(read/write) 125720 125720 0 0.0
.bss 123872 123872 0 0.0
.data 1848 1848 0 0.0
.text 803308 803308 0 0.0
k32w light k32w061+release (read/write) 658572 658572 0 0.0
.bss 76584 76584 0 0.0
.data 1864 1864 0 0.0
.text 574324 574324 0 0.0
lock k32w061+release (read/write) 659368 659368 0 0.0
.bss 76824 76824 0 0.0
.data 1884 1884 0 0.0
.text 574860 574860 0 0.0
linux chip-tool-ipv6only arm64 (read only) 8377644 8377676 32 0.0
(read/write) 386113 386113 0 0.0
.bss 56049 56049 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 257200 257200 0 0.0
.dynamic 560 560 0 0.0
.got 67992 67992 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 429972 429972 0 0.0
.text 7119508 7119540 32 0.0
thermostat-no-ble arm64 (read only) 2040876 2040908 32 0.0
(read/write) 145393 145393 0 0.0
.bss 64753 64753 0 0.0
.data 904 904 0 0.0
.data.rel.ro 72728 72728 0 0.0
.dynamic 560 560 0 0.0
.got 4064 4064 0 0.0
.init 24 24 0 0.0
.init_array 312 312 0 0.0
.rodata 130028 130028 0 0.0
.text 1696688 1696720 32 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2349632 2349632 0 0.0
.bss 189428 189428 0 0.0
.data 5296 5296 0 0.0
.text 1312208 1312208 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2332328 2332328 0 0.0
.bss 180936 180936 0 0.0
.data 5576 5576 0 0.0
.text 1294928 1294928 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2302744 2302744 0 0.0
.bss 179936 179936 0 0.0
.data 5560 5560 0 0.0
.text 1265344 1265344 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054256 2054256 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1016856 1016856 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 940935 940935 0 0.0
bss 119020 119020 0 0.0
rodata 108492 108492 0 0.0
text 635832 635832 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 926415 926415 0 0.0
bss 116064 116064 0 0.0
rodata 100940 100940 0 0.0
text 631228 631228 0 0.0
nrf52840dongle_nrf52840 (read/write) 991611 991611 0 0.0
bss 121864 121864 0 0.0
rodata 113244 113244 0 0.0
text 668032 668032 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 850762 850762 0 0.0
bss 115808 115808 0 0.0
rodata 101668 101668 0 0.0
text 552756 552756 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 910295 910295 0 0.0
bss 118176 118176 0 0.0
rodata 103460 103460 0 0.0
text 611280 611280 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 820346 820346 0 0.0
bss 114992 114992 0 0.0
rodata 96684 96684 0 0.0
text 528236 528236 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 913151 913151 0 0.0
bss 117940 117940 0 0.0
rodata 103820 103820 0 0.0
text 613928 613928 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 908231 908231 0 0.0
bss 117964 117964 0 0.0
rodata 102932 102932 0 0.0
text 609856 609856 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798479 798479 0 0.0
bss 109776 109776 0 0.0
rodata 78324 78324 0 0.0
text 533872 533872 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711278 711278 0 0.0
bss 107664 107664 0 0.0
rodata 72624 72624 0 0.0
text 451548 451548 0 0.0
p6 all-clusters-app default (read/write) 2406600 2406600 0 0.0
.bss 117764 117764 0 0.0
.data 2576 2576 0 0.0
.text 1364864 1364864 0 0.0
light-app default (read/write) 2327832 2327832 0 0.0
.bss 105520 105520 0 0.0
.data 2408 2408 0 0.0
.text 1286096 1286096 0 0.0
lock-app default (read/write) 2296840 2296840 0 0.0
.bss 104368 104368 0 0.0
.data 2352 2352 0 0.0
.text 1255104 1255104 0 0.0
qpg lighting-app qpg6105+debug (read only) 565376 565376 0 0.0
(read/write) 146936 146936 0 0.0
.bss 89672 89672 0 0.0
.data 1060 1060 0 0.0
.text 560056 560056 0 0.0
lock-app qpg6105+debug (read only) 513868 513868 0 0.0
(read/write) 146940 146940 0 0.0
.bss 88240 88240 0 0.0
.data 984 984 0 0.0
.text 508548 508548 0 0.0
persistent-storage-app qpg6105+debug (read only) 106848 106848 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38512 38512 0 0.0
.data 288 288 0 0.0
.text 101528 101528 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 839398 839398 0 0.0
bss 87468 87468 0 0.0
noinit 37160 37160 0 0.0
text 586504 586504 0 0.0

@github-actions
Copy link

github-actions bot commented Jan 21, 2022

PR #13776: Size comparison from c24c34b to 8d6632c

Increases (2 builds for linux)
platform target config section c24c34b0 8d6632c change % change
linux chip-tool-ipv6only arm64 (read only) 8428284 8428332 48 0.0
.text 7160228 7160276 48 0.0
thermostat-no-ble arm64 (read only) 2043324 2043356 32 0.0
.text 1699136 1699168 32 0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section c24c34b0 8d6632c change % change
efr32 lighting-app BRD4161A (read only) 833628 833628 0 0.0
(read/write) 127216 127216 0 0.0
.bss 125320 125320 0 0.0
.data 1896 1896 0 0.0
.text 833620 833620 0 0.0
BRD4161A+rpc (read only) 821024 821024 0 0.0
(read/write) 143880 143880 0 0.0
.bss 141880 141880 0 0.0
.data 1996 1996 0 0.0
.text 821016 821016 0 0.0
window-app BRD4161A (read only) 804212 804212 0 0.0
(read/write) 125792 125792 0 0.0
.bss 123944 123944 0 0.0
.data 1848 1848 0 0.0
.text 804204 804204 0 0.0
esp32 all-clusters-app c3devkit (read only) 917012 917012 0 0.0
(read/write) 1317522 1317522 0 0.0
.dram0.bss 70720 70720 0 0.0
.dram0.data 14244 14244 0 0.0
.flash.rodata 178968 178968 0 0.0
.flash.text 917012 917012 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 965567 965567 0 0.0
(read/write) 449480 449480 0 0.0
.dram0.bss 75184 75184 0 0.0
.dram0.data 34032 34032 0 0.0
.flash.rodata 208136 208136 0 0.0
.flash.text 960183 960183 0 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 658924 658924 0 0.0
.bss 76584 76584 0 0.0
.data 1864 1864 0 0.0
.text 574676 574676 0 0.0
lock k32w061+release (read/write) 659704 659704 0 0.0
.bss 76824 76824 0 0.0
.data 1884 1884 0 0.0
.text 575196 575196 0 0.0
linux chip-tool-ipv6only arm64 (read only) 8428284 8428332 48 0.0
(read/write) 388769 388769 0 0.0
.bss 56049 56049 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 259416 259416 0 0.0
.dynamic 560 560 0 0.0
.got 68424 68424 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 434308 434308 0 0.0
.text 7160228 7160276 48 0.0
thermostat-no-ble arm64 (read only) 2043324 2043356 32 0.0
(read/write) 145425 145425 0 0.0
.bss 64753 64753 0 0.0
.data 904 904 0 0.0
.data.rel.ro 72752 72752 0 0.0
.dynamic 560 560 0 0.0
.got 4064 4064 0 0.0
.init 24 24 0 0.0
.init_array 312 312 0 0.0
.rodata 130028 130028 0 0.0
.text 1699136 1699168 32 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2350096 2350096 0 0.0
.bss 189428 189428 0 0.0
.data 5296 5296 0 0.0
.text 1312672 1312672 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2332728 2332728 0 0.0
.bss 180936 180936 0 0.0
.data 5576 5576 0 0.0
.text 1295328 1295328 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2303080 2303080 0 0.0
.bss 179936 179936 0 0.0
.data 5560 5560 0 0.0
.text 1265680 1265680 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054256 2054256 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1016856 1016856 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 941287 941287 0 0.0
bss 119020 119020 0 0.0
rodata 108508 108508 0 0.0
text 636172 636172 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 926767 926767 0 0.0
bss 116064 116064 0 0.0
rodata 100956 100956 0 0.0
text 631568 631568 0 0.0
nrf52840dongle_nrf52840 (read/write) 991963 991963 0 0.0
bss 121864 121864 0 0.0
rodata 113260 113260 0 0.0
text 668372 668372 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 851114 851114 0 0.0
bss 115808 115808 0 0.0
rodata 101684 101684 0 0.0
text 553096 553096 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 910631 910631 0 0.0
bss 118176 118176 0 0.0
rodata 103476 103476 0 0.0
text 611612 611612 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 820698 820698 0 0.0
bss 114992 114992 0 0.0
rodata 96700 96700 0 0.0
text 528568 528568 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 913503 913503 0 0.0
bss 117940 117940 0 0.0
rodata 103836 103836 0 0.0
text 614260 614260 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 908583 908583 0 0.0
bss 117964 117964 0 0.0
rodata 102948 102948 0 0.0
text 610188 610188 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798479 798479 0 0.0
bss 109776 109776 0 0.0
rodata 78324 78324 0 0.0
text 533872 533872 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711278 711278 0 0.0
bss 107664 107664 0 0.0
rodata 72624 72624 0 0.0
text 451548 451548 0 0.0
p6 all-clusters-app default (read/write) 2407720 2407720 0 0.0
.bss 117772 117772 0 0.0
.data 2584 2584 0 0.0
.text 1365984 1365984 0 0.0
light-app default (read/write) 2328696 2328696 0 0.0
.bss 105520 105520 0 0.0
.data 2408 2408 0 0.0
.text 1286960 1286960 0 0.0
lock-app default (read/write) 2297704 2297704 0 0.0
.bss 104368 104368 0 0.0
.data 2352 2352 0 0.0
.text 1255968 1255968 0 0.0
qpg lighting-app qpg6105+debug (read only) 565840 565840 0 0.0
(read/write) 146936 146936 0 0.0
.bss 89664 89664 0 0.0
.data 1060 1060 0 0.0
.text 560520 560520 0 0.0
lock-app qpg6105+debug (read only) 514328 514328 0 0.0
(read/write) 146940 146940 0 0.0
.bss 88232 88232 0 0.0
.data 984 984 0 0.0
.text 509008 509008 0 0.0
persistent-storage-app qpg6105+debug (read only) 107140 107140 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38504 38504 0 0.0
.data 288 288 0 0.0
.text 101820 101820 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 839890 839890 0 0.0
bss 87468 87468 0 0.0
noinit 37160 37160 0 0.0
text 586972 586972 0 0.0

@andy31415
Copy link
Contributor

fast track: small delta, a lot of checkmarks

@andy31415 andy31415 merged commit bad085c into project-chip:master Jan 21, 2022
selissia pushed a commit to selissia/connectedhomeip that referenced this pull request Jan 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants