tmpeh
5ed77c10ae
Fix format string error in ota_web_server.cpp ( #9711 )
2025-07-19 11:24:26 -10:00
J. Nick Koston
9682c6c3d7
Merge branch 'bugfix/make_schedule_rollover_atomic' into integration
2025-07-19 11:13:38 -10:00
J. Nick Koston
d67508a6eb
move defines
2025-07-19 11:12:59 -10:00
J. Nick Koston
b25206b7bb
move defines
2025-07-19 11:12:41 -10:00
J. Nick Koston
112c6e34a5
move defines
2025-07-19 11:11:32 -10:00
J. Nick Koston
2ed70c3c60
Merge branch 'bugfix/make_schedule_rollover_atomic' into integration
2025-07-19 10:53:31 -10:00
J. Nick Koston
9119ac1c32
fix stale comments
2025-07-19 10:50:40 -10:00
J. Nick Koston
152e3ee587
make more readable
2025-07-19 10:43:57 -10:00
J. Nick Koston
acbcc5f9b8
make more readable
2025-07-19 10:40:21 -10:00
J. Nick Koston
5ed589fc97
make more readable
2025-07-19 10:39:27 -10:00
J. Nick Koston
58696961bd
make more readable
2025-07-19 10:38:28 -10:00
J. Nick Koston
a5f5af9596
make more readable
2025-07-19 10:36:49 -10:00
RubenKelevra
fde80bc530
core/scheduler: split millis_64_ into different platform functions
2025-07-19 21:44:35 +02:00
RubenKelevra
211739bba0
core/scheduler: Make millis_64_ rollover monotonic on SMP
...
The current implementation uses only memory_order_relaxed on all atomic
accesses. That protects each variable individually but not the semantic
link between the low word (last_millis_) and the high-word epoch counter
(millis_major_). On a multi-core target a reader could observe a freshly
stored low word before seeing the matching increment of the epoch,
causing a ~49-day negative jump.
Key fixes
- Release/acquire pairing
- writer: compare_exchange_weak(..., memory_order_release, …)
- reader: first load of last_millis_ now uses memory_order_acquire
- ensures any core that sees the new low word also sees the updated
high word
- Epoch-coherency retry loop
- re-loads millis_major_ after the update and retries if it changed,
guaranteeing monotonicity even when another core rolls over
concurrently
- millis_major_ promoted to std::atomic<uint16_t> on SMP platforms
- removes the formal data race at negligible cost
- new macros for better readability
- ESPHOME_SINGLE_CORE – currently ESP8266/RP2040 only
- ESPHOME_ATOMIC_SCHEDULER – all others except LibreTiny
- Logging and comments
- loads atomics safely in debug output
- updated inline docs to match the memory ordering
Behavior on single-core or non-atomic platforms is unchanged; multi-core
targets now get a provably monotonic 64-bit millisecond clock with
minimal overhead.
2025-07-19 19:09:10 +02:00
J. Nick Koston
89b9bddf1b
[CI] Fix clang-tidy not running when platformio.ini changes ( #9678 )
2025-07-19 20:55:21 +12:00
J. Nick Koston
23f0c596c2
Merge branch 'integration' into memory_api
2025-07-18 22:21:19 -10:00
J. Nick Koston
dec3c69190
Merge branch 'batch_eliminate_heap' into integration
2025-07-18 22:20:08 -10:00
J. Nick Koston
3204cf52e9
Update esphome/components/api/api_connection.cpp
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-18 22:17:12 -10:00
J. Nick Koston
e2d509d63d
Merge branch 'integration' into memory_api
2025-07-18 22:11:40 -10:00
J. Nick Koston
00dd5d64de
Merge branch 'batch_eliminate_heap' into integration
2025-07-18 22:11:20 -10:00
J. Nick Koston
09705ca526
guard
2025-07-18 22:11:13 -10:00
J. Nick Koston
8223db761d
document
2025-07-18 22:05:55 -10:00
J. Nick Koston
9dddb749c5
Merge branch 'batch_eliminate_heap' into integration
2025-07-18 21:31:31 -10:00
J. Nick Koston
e2524c9764
[api] Eliminate heap allocation in process_batch_ using stack-allocated PacketInfo array
2025-07-18 21:14:25 -10:00
J. Nick Koston
03a2237f2e
Merge remote-tracking branch 'upstream/dev' into integration
2025-07-18 20:19:21 -10:00
J. Nick Koston
65cbb0d741
[gpio] Auto-disable interrupts for shared GPIO pins in binary sensors ( #9701 )
2025-07-19 05:31:53 +00:00
J. Nick Koston
ba62a368ff
Merge branch 'ble_tracker_read_up_to_end' into integration
2025-07-18 16:32:32 -10:00
J. Nick Koston
ffbadc0929
[esp32_ble_tracker] Batch BLE advertisement processing to reduce overhead
2025-07-18 16:30:56 -10:00
J. Nick Koston
d19e2d9cce
Merge branch 'bluetooth_proxy_fixes' into integration
2025-07-18 16:11:26 -10:00
J. Nick Koston
c7884253d2
cannot always need to update timestamp
2025-07-18 16:11:16 -10:00
J. Nick Koston
fd2e6b1d2d
Merge branch 'bluetooth_proxy_fixes' into integration
2025-07-18 16:09:47 -10:00
J. Nick Koston
6b8da2f0ca
preen
2025-07-18 16:09:37 -10:00
J. Nick Koston
45e9522221
Merge branch 'integration' into memory_api
2025-07-18 15:41:34 -10:00
J. Nick Koston
8084c19a6c
Merge branch 'bluetooth_proxy_fixes' into integration
2025-07-18 14:51:40 -10:00
J. Nick Koston
2c63d5c7ce
rpreen
2025-07-18 14:51:12 -10:00
J. Nick Koston
6a728c2d7d
Merge branch 'bluetooth_proxy_fixes' into integration
2025-07-18 14:43:29 -10:00
J. Nick Koston
7afb2fe077
preen
2025-07-18 14:43:05 -10:00
J. Nick Koston
57c0a44b55
Merge branch 'bluetooth_proxy_fixes' into integration
2025-07-18 14:33:50 -10:00
J. Nick Koston
b2ec2615bb
other way
2025-07-18 14:33:10 -10:00
J. Nick Koston
6a566c6305
other way
2025-07-18 14:31:27 -10:00
J. Nick Koston
da1e1ce9ce
other way
2025-07-18 14:30:46 -10:00
J. Nick Koston
9902a4ee9c
Revert "preen"
...
This reverts commit 5f13aa162d
.
2025-07-18 14:28:45 -10:00
J. Nick Koston
2ce0753ec6
Revert "preen"
...
This reverts commit 27db5352ac
.
2025-07-18 14:28:45 -10:00
J. Nick Koston
e4736e9aa7
Revert "preen"
...
This reverts commit 9f5584ac62
.
2025-07-18 14:28:44 -10:00
J. Nick Koston
8acd7548c6
Revert "preen"
...
This reverts commit 1c4a50ad3a
.
2025-07-18 14:28:43 -10:00
J. Nick Koston
1ca1ceb08d
Revert "preen"
...
This reverts commit 4c9fa2f753
.
2025-07-18 14:28:42 -10:00
J. Nick Koston
3087ccface
Revert "preen"
...
This reverts commit a8dd0b474a
.
2025-07-18 14:28:41 -10:00
J. Nick Koston
d9fe52a5fb
Revert "preen"
...
This reverts commit 56fdc1d115
.
2025-07-18 14:28:40 -10:00
J. Nick Koston
56fdc1d115
preen
2025-07-18 14:25:22 -10:00
J. Nick Koston
a8dd0b474a
preen
2025-07-18 14:25:06 -10:00