多内核线程共享块设备读取内存并执行原子操作的实现方式问询
多内核线程共享块设备读取内存并执行原子操作的实现方式问询
我最近碰到了一个内核开发相关的问题,想请教下大家:怎么让两个(或更多)内核线程从块设备读取同一个块到同一块内核内存中,并且它们能在将这块内存标记为脏之前,通过原子操作来修改其中的内容?
我自己初步的想法是,第一个线程先完成读取操作,后续的线程直接获取同一块内存的指针就可以了,但不确定这个思路是否正确。
另外我还想弄清楚,这种场景是由内核的API来自动处理的,还是需要我们自己编写的内核模块去手动跟踪哪些块已经被读取、哪些已经被标记为脏呢?
备注:内容来源于stack exchange,提问作者fadedbee




