On 25/04/30 03:42PM, Alireza Sanaee wrote: > On Sun, 20 Apr 2025 20:33:27 -0500 > John Groves <j...@groves.net> wrote: > >> <snip> > > Hi John, > > Apologies if the question is far off or irrelevant. > > I am trying to understand FAMFS, and I am thinking where does FAMFS > stand when compared to OpenSHMEM PGAS. Can't we have a OpenSHMEM-based > shared memory implementation over CXL that serves as FAMFS? > > Maybe FAMFS does more than that!?! > > Thanks, > Alireza >
Continuation of this conversation likely belongs in the discusison section at [1], but a couple of thoughts. Famfs provides a scale-out filesystem mounts where the files that map to the same disaggregated shared memory. If you mmap a famfs file, you are accessing the memory directly. Since shmem is file-backed (usually tmpfs or its ilk), shmem is a higher-level and more specialized abstraction, and OpenSHMEM may be able to run atop famfs. It looks like OpenSHMEM and PGAS cover the possibility that "shared memory" might require grabbing a copy via [r]dma - which famfs will probably never do. Famfs only handles cases where the memory is actually shared. (hey, I work for a memory company.) Since famfs provides memory-mappable files, almost all apps can access them (no requirement to write to the shmem, or other related but more estoteric interfaces). Apps are responsible for not doing "nonsense" access WRT cache coherency, but famfs manages cache coherency for its metadata. The video at [2] may be useful to get up to speed. [1] http://github.com/cxl-micron-reskit/famfs [2] https://www.youtube.com/watch?v=L1QNpb-8VgM&t=1680