Messages in this thread | | | Subject | Re: [fuse-devel] [PATCH] FUSE/CUSE: implement direct mmap support | From | Miklos Szeredi <> | Date | Fri, 12 Feb 2010 14:53:27 +0100 |
| |
On Fri, 12 Feb 2010, Tejun Heo wrote: > > 3) on the low level API don't make it an offset pointer that is > > adjusted. It's not an offset to be either left alone or changed > > (that would be the case if we wanted to allow adjustment to > > vma->vm_pgoff itself). It's about calclulating a completely new > > offset for the server side mmap. > > And now I'm completely lost. So, we'll assign new offset (no matter > how it is called) but it doesn't have to be aligned? It seems like > we've been having this disconnection from the beginning. Can you > please describe how this can avoid aliasing issues between clients > sharing the same page? So, in 2), whatever it is called, the server > specifies a value, how is that value used?
That dev_offset value is used as an offset into the server side mmap address space. And yes, vma->vm_pgoff and dev_offset should be SHMLBA multiples apart.
But don't call that _adjustment_. That's totally confusing, these are *two* *different* *offsets*. There's an alignment requirement but that's all. If they are the same that is pure coincidence.
And dev_offset (which points into the dmmap address space) is only required if the filesystem/CUSE driver needs server side mmap.
> > In fact most of what is required is already there in the form of the > > page cache. What I think would be interesting to be able to > > load/save contents of page cache from the server side, and not > > necessarily using server side mmaps (server side mmap is also a > > possibility, but not an easy one if it has to cooperate with the > > page cache). > > Device mmap use cases might not work very well if the server can't > mmap directly.
I understand that, and that's where the interesting part comes in: make the mmap API in a way that it works with and without server side mmap.
Thanks, Miklos
| |