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 
						 
				 
			
				
					
						
							
							
								J. Nick Koston 
							
						 
					 
					
						
						
							
						
						4c9fa2f753 
					 
					
						
						
							
							preen  
						
						
						
						
					 
					
						2025-07-18 14:24:49 -10:00 
						 
				 
			
				
					
						
							
							
								J. Nick Koston 
							
						 
					 
					
						
						
							
						
						1c4a50ad3a 
					 
					
						
						
							
							preen  
						
						
						
						
					 
					
						2025-07-18 14:24:32 -10:00 
						 
				 
			
				
					
						
							
							
								J. Nick Koston 
							
						 
					 
					
						
						
							
						
						9f5584ac62 
					 
					
						
						
							
							preen  
						
						
						
						
					 
					
						2025-07-18 14:24:20 -10:00 
						 
				 
			
				
					
						
							
							
								J. Nick Koston 
							
						 
					 
					
						
						
							
						
						27db5352ac 
					 
					
						
						
							
							preen  
						
						
						
						
					 
					
						2025-07-18 14:24:05 -10:00 
						 
				 
			
				
					
						
							
							
								J. Nick Koston 
							
						 
					 
					
						
						
							
						
						5f13aa162d 
					 
					
						
						
							
							preen  
						
						
						
						
					 
					
						2025-07-18 14:23:38 -10:00