@tao
forget DE/AA OS5, it was Amiga Inc project, that is out of the picture..
Not a lot information has shared about sate of SMP in AmigaOS4.1..
so we left guessing...
The fundamental issue for SMP is that core do not see the same content, etch core has unique L1 cache.. when data is shared between the core, the L1 cache, most be synchronized.
https://www.youtube.com/watch?v=r_ZE1XVT8Aohttps://www.youtube.com/watch?v=7yrK_9PderQprotocol-driven cache coherence, has a lot issues.
1. Lack of Scalability (The "Bus Traffic" Problem)
Snooping Protocol Limits: Common hardware protocols often rely on "snooping" (broadcasting) to inform other cores of changes. This works well for a few cores, but as the number of cores increases, the traffic on the interconnect bus becomes a massive bottleneck, slowing down all processors.
2. High Performance Overhead (Latency and Bandwidth)
Coherence Misses: In a multiprocessor system, if multiple cores constantly write to the same data (false sharing), the hardware must invalidate the cache lines in other cores. This leads to high cache miss rates, which are far more costly than simple memory latency.
3. Inflexibility and Inefficiency
the basic issue you can do protocol-driven cache, but it inefficient, because flushes caches too often, you want the OS to control this..
this comes down to ownership of the data, what core has accessed what data, you don't want the cache to be flushed when its not needed, but you do want to flush it, if you most do so. so keeping tack of what core, did what when. to what data..
"to what data" part is the issue in AmigaOS..
Its up to AmigaOS programs to snoop public lists, because there is lack of locking mechanisms, that specify what data, that is locked, we often have to use the most powerful tool to get ownership, by disabling multitasking, for short periods. Instead of proper lookup functions. Lets say I want to obtain a task or process structure by pid, without blocking the OS, and without risk of reading something that might be freed from memory, without notice. Maybe I want to obtain a msgport by name. There is function called FindPort but does not guarantee ownership or shared lock. The msgport can be deleted without notice. unless you prevent other task form running.
Edited by LiveForIt on 2026/2/23 17:48:29
Edited by LiveForIt on 2026/2/23 18:10:30
Edited by LiveForIt on 2026/2/23 18:27:36
Edited by LiveForIt on 2026/2/23 18:28:25
Edited by LiveForIt on 2026/2/23 18:39:27