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

Logging cleanup #34108

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

Logging cleanup #34108

wants to merge 5 commits into from

Conversation

mbknust
Copy link
Contributor

@mbknust mbknust commented Jun 27, 2024

Currently, the src/platform/logging directory contains a handful of files:

src/platform/logging/
├── BUILD.gn
├── impl
│   ├── android
│   │   └── Logging.cpp
│   └── stdio
│       └── Logging.cpp
└── LogV.h

Each of them can be put in a more suitable place, which makes it possible to get rid of the src/platform/logging directory entirely.

Changes

  1. Move src/platform/logging/LogV.h to src/include/platform/

  2. Move src/platform/logging/impl/android/Logging.cpp to src/platform/android/ (this became a separate PR Move android's Logging.cpp to src/platform/android/ #34192)

  3. Move and rename src/platform/logging/impl/stdio/Logging.cpp to src/platform/StdioLoggingImpl.cpp

  4. Merge content of src/platform/logging/BUILD.gn into src/platform/BUILD.gn

    • logging:stdio became platform:stdio-logging
    • logging:default became platform:default-logging

Previously, it was placed in src/platform/logging/
Previously, it was placed in src/platform/logging/impl/android/
Copy link

github-actions bot commented Jun 27, 2024

PR #34108: Size comparison from ee49ebd to 9a85ee5

Full report (8 builds for cc32xx, mbed, qpg, stm32, tizen)
platform target config section ee49ebd 9a85ee5 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 605842 605842 0 0.0
RAM 204508 204508 0 0.0
lock CC3235SF_LAUNCHXL FLASH 650870 650870 0 0.0
RAM 204780 204780 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1502116 1502116 0 0.0
RAM 226656 226656 0 0.0
qpg lighting-app qpg6105+debug FLASH 650676 650676 0 0.0
RAM 104564 104564 0 0.0
lock-app qpg6105+debug FLASH 610784 610784 0 0.0
RAM 99240 99240 0 0.0
stm32 light STM32WB5MM-DK FLASH 472056 472056 0 0.0
RAM 141652 141652 0 0.0
tizen all-clusters-app arm unknown 1584 1584 0 0.0
FLASH 1633324 1633324 0 0.0
RAM 46012 46012 0 0.0
chip-tool-ubsan arm unknown 2384 2384 0 0.0
FLASH 16081910 16081910 0 0.0
RAM 7065388 7065388 0 0.0

Previously, it was placed in src/platform/logging/impl/stdio/
Its contents have been put into src/platform/BUILD.gn:
- logging:stdio became platform:stdio_logging
- logging:default became platform:default_logging
@mbknust mbknust marked this pull request as ready for review June 27, 2024 10:11
@pullapprove pullapprove bot requested a review from andy31415 June 27, 2024 10:11
Copy link

github-actions bot commented Jun 27, 2024

PR #34108: Size comparison from ee49ebd to 90f785a

Full report (8 builds for cc32xx, mbed, qpg, stm32, tizen)
platform target config section ee49ebd 90f785a change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 605842 605842 0 0.0
RAM 204508 204508 0 0.0
lock CC3235SF_LAUNCHXL FLASH 650870 650870 0 0.0
RAM 204780 204780 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1502116 1502116 0 0.0
RAM 226656 226656 0 0.0
qpg lighting-app qpg6105+debug FLASH 650676 650676 0 0.0
RAM 104564 104564 0 0.0
lock-app qpg6105+debug FLASH 610784 610784 0 0.0
RAM 99240 99240 0 0.0
stm32 light STM32WB5MM-DK FLASH 472056 472056 0 0.0
RAM 141652 141652 0 0.0
tizen all-clusters-app arm unknown 1584 1584 0 0.0
FLASH 1633324 1633324 0 0.0
RAM 46012 46012 0 0.0
chip-tool-ubsan arm unknown 2384 2384 0 0.0
FLASH 16081910 16081902 -8 -0.0
RAM 7065388 7065388 0 0.0

Copy link

github-actions bot commented Jun 27, 2024

PR #34108: Size comparison from ee49ebd to abad890

Full report (96 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section ee49ebd abad890 change % change
bl602 lighting-app bl602 FLASH 1270644 1270644 0 0.0
RAM 95328 95328 0 0.0
bl602+mfd FLASH 1284902 1284902 0 0.0
RAM 95472 95472 0 0.0
bl602+rpc FLASH 1309860 1309860 0 0.0
RAM 103752 103752 0 0.0
bl702 lighting-app bl702 FLASH 1091540 1091540 0 0.0
RAM 15161 15161 0 0.0
bl702+mfd FLASH 1102234 1102234 0 0.0
RAM 15313 15313 0 0.0
bl702+rpc FLASH 1181350 1181350 0 0.0
RAM 24181 24181 0 0.0
bl706-eth FLASH 874884 874884 0 0.0
RAM 27272 27272 0 0.0
bl706-wifi FLASH 1127216 1127216 0 0.0
RAM 14605 14605 0 0.0
bl702l lighting-app bl702l FLASH 1078426 1078426 0 0.0
RAM 21732 21732 0 0.0
bl702l+mfd FLASH 1089688 1089688 0 0.0
RAM 21892 21892 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 798072 798072 0 0.0
RAM 103096 103096 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 813836 813836 0 0.0
RAM 113568 113568 0 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 803344 803344 0 0.0
RAM 107696 107696 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 756136 756136 0 0.0
RAM 101788 101788 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 741816 741816 0 0.0
RAM 102036 102036 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 605842 605842 0 0.0
RAM 204508 204508 0 0.0
lock CC3235SF_LAUNCHXL FLASH 650870 650870 0 0.0
RAM 204780 204780 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 665857 665857 0 0.0
RAM 75100 75100 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 685701 685701 0 0.0
RAM 77732 77732 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 685701 685701 0 0.0
RAM 77732 77732 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 642637 642637 0 0.0
RAM 70168 70168 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 608401 608401 0 0.0
RAM 70804 70804 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 628037 628037 0 0.0
RAM 73356 73356 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 628037 628037 0 0.0
RAM 73356 73356 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 623897 623897 0 0.0
RAM 73820 73820 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 643621 643621 0 0.0
RAM 76372 76372 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 643621 643621 0 0.0
RAM 76372 76372 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 592469 592469 0 0.0
RAM 67788 67788 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 612321 612321 0 0.0
RAM 70420 70420 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 612321 612321 0 0.0
RAM 70420 70420 0 0.0
efr32 lighting-app BRD4187C FLASH 923020 923020 0 0.0
RAM 134996 134996 0 0.0
lock-app BRD4338a FLASH 762164 762156 -8 -0.0
RAM 174552 174552 0 0.0
window-app BRD4187C FLASH 1011804 1011804 0 0.0
RAM 129616 129616 0 0.0
esp32 all-clusters-app c3devkit DRAM 88332 88332 0 0.0
FLASH 1468744 1468744 0 0.0
IRAM 75570 75570 0 0.0
m5stack DRAM 114796 114796 0 0.0
FLASH 1537959 1537959 0 0.0
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4592 4592 0 0.0
FLASH 2529216 2529216 0 0.0
RAM 125112 125112 0 0.0
all-clusters-app debug unknown 5368 5368 0 0.0
FLASH 5581246 5581246 0 0.0
RAM 487384 487384 0 0.0
all-clusters-minimal-app debug unknown 5288 5288 0 0.0
FLASH 5051432 5051432 0 0.0
RAM 232936 232936 0 0.0
bridge-app debug unknown 5256 5256 0 0.0
FLASH 4477464 4477464 0 0.0
RAM 212832 212832 0 0.0
chip-tool debug unknown 5728 5728 0 0.0
FLASH 11675847 11675847 0 0.0
RAM 541578 541578 0 0.0
chip-tool-ipv6only arm64 unknown 19944 19944 0 0.0
FLASH 10796276 10796276 0 0.0
RAM 590464 590464 0 0.0
fabric-admin debug unknown 5592 5592 0 0.0
FLASH 10642327 10642327 0 0.0
RAM 535610 535610 0 0.0
fabric-bridge-app debug unknown 5264 5264 0 0.0
FLASH 4348008 4348008 0 0.0
RAM 204960 204960 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5373058 5373058 0 0.0
RAM 221640 221640 0 0.0
lock-app debug unknown 5192 5192 0 0.0
FLASH 4541016 4541016 0 0.0
RAM 200248 200248 0 0.0
ota-provider-app debug unknown 4576 4576 0 0.0
FLASH 4196904 4196904 0 0.0
RAM 194544 194544 0 0.0
ota-requestor-app debug unknown 4512 4512 0 0.0
FLASH 4322264 4322264 0 0.0
RAM 199168 199168 0 0.0
shell debug unknown 4112 4112 0 0.0
FLASH 2794525 2794525 0 0.0
RAM 150480 150480 0 0.0
thermostat-no-ble arm64 unknown 9184 9184 0 0.0
FLASH 4167580 4167580 0 0.0
RAM 235864 235864 0 0.0
tv-app debug unknown 5472 5472 0 0.0
FLASH 5594296 5594296 0 0.0
RAM 341768 341768 0 0.0
tv-casting-app debug unknown 5096 5096 0 0.0
FLASH 9859646 9859646 0 0.0
RAM 400024 400024 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1502116 1502116 0 0.0
RAM 226656 226656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 880876 880876 0 0.0
RAM 139693 139693 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 951688 951688 0 0.0
RAM 138121 138121 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 826432 826432 0 0.0
RAM 138591 138591 0 0.0
light-switch-app nrf52840dk_nrf52840 FLASH 786248 786248 0 0.0
RAM 132652 132652 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 931792 931792 0 0.0
RAM 130345 130345 0 0.0
lighting-app nrf52840dk_nrf52840+rpc FLASH 870492 870492 0 0.0
RAM 144403 144403 0 0.0
nrf52840dongle_nrf52840 FLASH 812264 812264 0 0.0
RAM 152408 152408 0 0.0
nrf5340dk_nrf5340_cpuapp FLASH 768008 768008 0 0.0
RAM 143209 143209 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 931792 931792 0 0.0
RAM 130345 130345 0 0.0
lock-app nrf52840dk_nrf52840 FLASH 797904 797904 0 0.0
RAM 133175 133175 0 0.0
nrf5340dk_nrf5340_cpuapp FLASH 723200 723200 0 0.0
RAM 133241 133241 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 944388 944388 0 0.0
RAM 130868 130868 0 0.0
pump-app nrf52840dk_nrf52840 FLASH 750668 750668 0 0.0
RAM 131860 131860 0 0.0
pump-controller-app nrf52840dk_nrf52840 FLASH 737280 737280 0 0.0
RAM 131659 131659 0 0.0
nxp contact k32w0+release FLASH 575668 575668 0 0.0
RAM 70024 70024 0 0.0
k32w1+release FLASH 590816 590816 0 0.0
RAM 74056 74056 0 0.0
light k32w0+release FLASH 609744 609744 0 0.0
RAM 69500 69500 0 0.0
k32w1+release FLASH 674320 674320 0 0.0
RAM 82816 82816 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1613436 1613436 0 0.0
RAM 207148 207148 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1534204 1534204 0 0.0
RAM 204052 204052 0 0.0
light cy8ckit_062s2_43012 FLASH 1461076 1461076 0 0.0
RAM 197332 197332 0 0.0
lock cy8ckit_062s2_43012 FLASH 1462932 1462932 0 0.0
RAM 224396 224396 0 0.0
qpg lighting-app qpg6105+debug FLASH 650676 650676 0 0.0
RAM 104564 104564 0 0.0
lock-app qpg6105+debug FLASH 610784 610784 0 0.0
RAM 99240 99240 0 0.0
stm32 light STM32WB5MM-DK FLASH 472056 472056 0 0.0
RAM 141652 141652 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 632160 632160 0 0.0
RAM 50528 50528 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 657052 657052 0 0.0
RAM 145872 145872 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 777126 777126 0 0.0
RAM 110684 110684 0 0.0
bridge-app tlsr9258a FLASH 675144 675144 0 0.0
RAM 95304 95304 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 633744 633744 0 0.0
RAM 50572 50572 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 719538 719538 0 0.0
RAM 77148 77148 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 612186 612186 0 0.0
RAM 142104 142104 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 799746 799746 0 0.0
RAM 100508 100508 0 0.0
lock-app-dfu tlsr9528a FLASH 665308 665308 0 0.0
RAM 69860 69860 0 0.0
ota-requestor-app tlsr9258a FLASH 694474 694474 0 0.0
RAM 95028 95028 0 0.0
pump-app tlsr9518adk80d FLASH 616008 616008 0 0.0
RAM 56952 56952 0 0.0
pump-controller-app tlsr9518adk80d FLASH 606392 606392 0 0.0
RAM 56752 56752 0 0.0
shell tlsr9518adk80d FLASH 466192 466192 0 0.0
RAM 72484 72484 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 640104 640104 0 0.0
RAM 52200 52200 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 650218 650218 0 0.0
RAM 60388 60388 0 0.0
thermostat tlsr9518adk80d FLASH 625282 625282 0 0.0
RAM 57084 57084 0 0.0
window-covering tlsr9118bdk40d FLASH 518734 518734 0 0.0
RAM 97800 97800 0 0.0
tizen all-clusters-app arm unknown 1584 1584 0 0.0
FLASH 1633324 1633324 0 0.0
RAM 46012 46012 0 0.0
chip-tool-ubsan arm unknown 2384 2384 0 0.0
FLASH 16081910 16081902 -8 -0.0
RAM 7065388 7065388 0 0.0

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

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

Could you explain in the PR summary why this change is desirable? The description says that we can remove logging directory, however from a code organization perspective a directory named logging would give targets of logging:<name> and this change moves it to <name>-logging so it seems like a noop but with moving thigs out of a dedicated folder. A folder named "logging" is obviously related to logging. A folder named "platform" does not seem so.

I would like to understand how this improves maintainability and structure. Naming-wise, platform:default-logging seems slightly worse than platform/logging:default (we could even remove the default and name it logging, so then you could use platform/logging which could not be done if we move everything in platform.

@@ -92,7 +92,7 @@ static_library("chip-tool-utils") {
sources += [ "commands/interactive/InteractiveCommands.cpp" ]
deps += [
"${chip_root}/examples/common/websocket-server",
"${chip_root}/src/platform/logging:headers",
"${chip_root}/src/platform:logging-header",
Copy link
Contributor

@andy31415 andy31415 Jul 2, 2024

Choose a reason for hiding this comment

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

This flattens the "logging" into "platform". We currently have this in src/app and it is not good for maintainability - we end up getting a lot of separate libraries in one large build files, without them being related. We seem to start getting this into "core" as well as we figured out we have to fix deps. Flattening things out into "platform" seems undesirable.

@arkq
Copy link
Contributor

arkq commented Jul 2, 2024

I would like to understand how this improves maintainability and structure.

Currently we have "platform/Linux", "platform/ESP32", "platform/Darwin" and so on. The first impression when looking at the directory structure is that every subdirectory is for a dedicated platform. There is also a "platform/fake" which somehow fits here. And then one discovers "platform/logging". Definitely there is no platform named "logging". So, the reasoning behind getting the logging out of the platform directory was to keep only real (except the "fake") platforms here. IMHO, that should improve readability of that directory level. However, I agree that this might make a mess on the upper level...

On the other hand the "platform" directory level contains a lot of files related to platform which could be grouped into logical blocks (modules). Putting them into dedicated subdirectories will mix real platforms with platform modules...

Currently the "platform/logging" contains logger implementation for STDIO (common for all platforms in case of forced STDIO logging), and implementation for Android. I think, that the Android one should be moved to the "platform/Android" anyway (it will follow pattern for other platforms where platform-specific implementation is kept in "platform/<name>" subdirectory. After this move, we will end up with only one file in the "platform/logging" - the common STDIO implementation. So, we thought that there is no reason to keep a dedicated directory for only one file in it. Basically that's the story behind this PR :)

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

Successfully merging this pull request may close these issues.

None yet

3 participants