J. Nick Koston
29ffeeeb19
Add fast_select diagnostic counters logged every 10000 loops
2026-02-23 22:21:07 -06:00
J. Nick Koston
d1dffafc86
Clarify rcvevent reads are main-loop-only due to socket ownership
2026-02-23 22:14:15 -06:00
J. Nick Koston
cba004e2d1
Check for pending socket data before sleeping
2026-02-23 21:49:26 -06:00
J. Nick Koston
8d1cf9fd7d
Add clarifying comments for review feedback
2026-02-23 21:37:19 -06:00
J. Nick Koston
29416061ea
comments
2026-02-23 21:20:38 -06:00
J. Nick Koston
3e0cdc2404
cleanup
2026-02-23 21:10:38 -06:00
J. Nick Koston
fd6d0de7a2
cleanup
2026-02-23 21:00:00 -06:00
J. Nick Koston
64364961db
[core] Replace lwip_select() with direct rcvevent reads on ESP32
...
On ESP32, replace lwip_select() in yield_with_select_() with direct
socket event reads via lwip_socket_dbg_get_socket(), reducing poll
cost from 133us to ~7us (18.7x faster). Replace the UDP loopback
wake socket with FreeRTOS task notifications (<2us, ISR-safe).
Benchmarks (ESP32, 4 listen sockets):
- Poll path: 7,087 ns vs 132,402 ns (18.7x faster)
- Wake signal: 1,826 ns vs ~130,000 ns (72x faster, now ISR-safe)
- Binary: yield_with_select_ 108B vs 188B (43% smaller)
Non-ESP32 platforms (LibreTiny, ESP8266, RP2040) are unchanged.
2026-02-23 20:47:54 -06:00
Jonathan Swoboda
ebf1047da7
[core] Move build_info_data.h out of application.h to fix incremental rebuilds ( #14230 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-02-23 18:51:56 -05:00
J. Nick Koston
ede2da2fbc
[core] Conditionally compile get_loop_priority with USE_LOOP_PRIORITY ( #14210 )
2026-02-23 10:57:23 +13:00
J. Nick Koston
be853afc24
[core] Conditionally compile setup_priority override infrastructure ( #14057 )
2026-02-18 20:57:56 -06:00
J. Nick Koston
02e310f2c9
[core] Remove unnecessary IRAM_ATTR from yield(), delay(), feed_wdt(), and arch_feed_wdt() ( #14063 )
2026-02-18 16:48:13 -06:00
J. Nick Koston
c9c125aa8d
[socket] Devirtualize Socket::ready() and implement working ready() for LWIP raw TCP ( #13913 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-11 17:54:58 +00:00
J. Nick Koston
225c13326a
[core] Extract dump_config from Application::loop() hot path ( #13900 )
2026-02-11 16:41:07 +13:00
Jonathan Swoboda
081f953dc3
[core] Add capacity check to register_component_ ( #13778 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-05 14:00:16 +00:00
Shivam Maurya
898c8a5836
[core] ESP32 chip revision text ( #13647 )
2026-01-30 11:01:00 -05:00
J. Nick Koston
423a617b15
[core] Improve minimum_chip_revision warning for PSRAM users ( #13074 )
2026-01-08 10:52:27 -10:00
J. Nick Koston
0e108c2178
[esp32] Add minimum_chip_revision setting and log chip revision at startup ( #12696 )
2026-01-02 14:14:52 -10:00
David Woodhouse
9de7df7b5b
Add build info to image ( #12425 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-18 00:06:52 +00:00
J. Nick Koston
c124d72ea9
[esp8266] Eliminate up to 16ms socket latency ( #12397 )
2025-12-10 03:45:27 +00:00
J. Nick Koston
3f12630a6b
[core][esp32_ble][socket] Add wake_loop_threadsafe() helper for background thread wakeups ( #11681 )
2025-11-04 08:13:37 +13:00
J. Nick Koston
d25121a55c
[core] Remove redundant fd bounds check in yield_with_select_() ( #11666 )
2025-11-01 22:43:08 -05:00
J. Nick Koston
0f356fcc79
[core] Optimize looping_components_ with FixedVector to save flash ( #11183 )
2025-10-14 09:20:43 +13:00
J. Nick Koston
7adad0ee49
[core] Refactor insertion sort functions to eliminate code duplication ( #10653 )
2025-09-09 02:03:35 -05:00
J. Nick Koston
dd8815ec9d
[core] Reduce flash usage by refactoring looping component partitioning ( #10652 )
2025-09-09 01:17:30 -05:00
J. Nick Koston
8d90f13e97
[core] Store component source strings in flash on ESP8266 (breaking change) ( #10621 )
2025-09-07 20:10:00 -05:00
J. Nick Koston
56b6dd31f1
[core] Eliminate heap allocation in teardown_components by using StaticVector ( #10256 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-20 14:45:13 +12:00
J. Nick Koston
daf8ec36ab
[core] Remove unnecessary FD_SETSIZE check on ESP32 and improve logging ( #10255 )
2025-08-15 21:26:48 -05:00
J. Nick Koston
cd6cf074d9
[core] Replace std::stable_sort with insertion sort to save 3.5KB flash ( #10035 )
2025-08-04 13:56:06 +12:00
J. Nick Koston
dbaf2cdd50
[core] Replace std::find and std::max_element with simple loops to reduce binary size ( #10044 )
2025-08-04 13:46:06 +12:00
J. Nick Koston
378b687a82
[core] Restore COMPONENT_STATE_LOOP_DONE check in calculate_looping_components ( #9832 )
2025-07-23 23:31:30 +12:00
J. Nick Koston
b636b844fc
[core] Initialize looping_components_ before setup blocking phase ( #9820 )
2025-07-22 16:43:22 -10:00
J. Nick Koston
0f0038df24
[core] Process pending loop enables during setup blocking phase ( #9787 )
2025-07-22 15:47:43 +12:00
J. Nick Koston
b1c86fe30e
Optimize scheduler timing by reducing millis() calls ( #9524 )
2025-07-16 13:41:55 +12:00
J. Nick Koston
e012fd5b32
Add runtime_stats component for performance debugging and analysis ( #9386 )
...
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2025-07-16 13:13:51 +12:00
J. Nick Koston
9769f8a4cc
Fix timing overflow when components disable themselves during loop ( #9529 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-15 21:51:01 +00:00
J. Nick Koston
03566c34ed
Reduce Component memory usage by 40% (8 bytes per component) ( #9278 )
2025-07-02 13:43:40 +12:00
J. Nick Koston
0b1b8f05e1
Reduce loop enable/disable log spam by using very verbose level ( #9267 )
2025-06-30 11:49:31 +12:00
Jimmy Hedman
68d66c873e
Upgrade to use C++20 ( #9135 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2025-06-27 17:31:50 +00:00
J. Nick Koston
2a45467bf6
Pre-reserve looping components vector to reduce memory allocations ( #9177 )
2025-06-23 14:10:09 +12:00
J. Nick Koston
8ba22183b9
Add enable_loop_soon_any_context() for thread and ISR-safe loop enabling ( #9127 )
2025-06-19 13:30:41 +12:00
J. Nick Koston
2e534ce41e
Reduce CPU overhead by allowing components to disable their loop() ( #9089 )
2025-06-18 21:49:25 +12:00
J. Nick Koston
374c33e8dc
Optimize Component and Application state storage from uint32_t to uint8_t ( #9082 )
2025-06-15 14:48:53 +12:00
J. Nick Koston
dac738a916
Always perform select() when loop duration exceeds interval ( #9058 )
2025-06-12 03:27:10 +00:00
Keith Burzinski
9652b1a556
[application] Fix build error on some IDF versions ( #9045 )
2025-06-11 21:44:49 +12:00
J. Nick Koston
0e27ac281f
Ensure components only powerdown after teardown ( #9044 )
2025-06-11 04:21:22 +00:00
Jon Krause
cdae06e571
Force socket ready when high frequency looping ( #9032 )
2025-06-09 00:40:25 +00:00
J. Nick Koston
9cc2a04d54
Implement proper API connection teardown before deep sleep/reboot ( #9008 )
2025-06-09 10:29:26 +12:00
Keith Burzinski
6675e99862
Remove unnecessary ellipsis ( #8964 )
2025-06-03 21:46:10 +01:00
J. Nick Koston
8c77e40695
Fix select() logging flood in very verbose mode ( #8942 )
2025-05-29 02:29:37 +00:00