作者jeunder ()
看板LinuxDev
标题Re: [问题] Linux SMP 是否需要 cache coherency ꨠ…
时间Tue Feb 23 23:28:32 2010
看起来 kernel 里面有太多 code 都是假设有 multi-processor cache coherence.
spin lock 也只能用来确保 atomic,
然而有太多地方都直接 read/write memory 给 MP 之间取用,
完全没有对 cache coherence 做特别处理.
我怀疑 Linux SMP 机制, 有不成文的假设,
就是假设 MP 之间一定有 cache coherence 机制,
因此不用担心随便 write 某个共用 memory 就得用 ipi 通知所有 processor
做 cache flush/invalidate.
看看神写的 mail 内容, 似乎也是这个意思 ?
http://lkml.indiana.edu/hypermail/linux/kernel/0007.3/1220.html
然後参考这个网页, 则是做到了我想做的事, kernel 应该改不少, 而且也有不少限制.
所以不敢自称 SMP, 只称 SMP-like.
http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:smp-like
很好奇, 业界的 embedded system 实作, 是不是很少有人在搞 Linux SMP ?
如果有, 是不是都满足以上假设 ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.230.36
※ 编辑: jeunder 来自: 114.32.230.36 (02/23 23:45)
1F:→ Spig:当然很少人在搞Embedded Linux SMP - 你有听过几颗 ARM/MIPS 02/23 23:55
2F:→ Spig:是二个以上的 core 而且还是 SMP? 02/23 23:56
3F:推 freesamael:主流的arm mpcore有提供cache coherency 03/02 09:31
4F:→ freesamael:而且如果scale不大的话,硬体cc就没有效率的问题 03/02 09:33
5F:→ freesamael:kernel level做假设没有cc等於在做distributed OS 03/02 09:34
6F:→ freesamael:复杂度太高,学术界做研究的很多,但是都做不长久 03/02 09:35
7F:→ freesamael:微软的研究中心最近也在做一套叫barrelfish的,就是以 03/02 09:36
8F:→ freesamael:L4 microkernel为基础做假设完全没有shared memory的OS 03/02 09:37