On Tue, Aug 17, 2021 at 09:22:53PM +0800, JeffleXu wrote: > > > On 8/17/21 8:39 PM, Vivek Goyal wrote: > > On Tue, Aug 17, 2021 at 10:06:53AM +0200, Miklos Szeredi wrote: > >> On Tue, 17 Aug 2021 at 04:22, Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote: > >>> > >>> This patchset adds support of per-file DAX for virtiofs, which is > >>> inspired by Ira Weiny's work on ext4[1] and xfs[2]. > >> > >> Can you please explain the background of this change in detail? > >> > >> Why would an admin want to enable DAX for a particular virtiofs file > >> and not for others? > > > > Initially I thought that they needed it because they are downloading > > files on the fly from server. So they don't want to enable dax on the file > > till file is completely downloaded. > > Right, it's our initial requirement. > > > > But later I realized that they should > > be able to block in FUSE_SETUPMAPPING call and make sure associated > > file section has been downloaded before returning and solve the problem. > > So that can't be the primary reason. > > Saying we want to access 4KB of one file inside guest, if it goes > through FUSE request routine, then the fuse daemon only need to download > this 4KB from remote server. But if it goes through DAX, then the fuse > daemon need to download the whole DAX window (e.g., 2MB) from remote > server, so called amplification. Maybe we could decrease the DAX window > size, but it's a trade off. Downloading 2MB chunk should not be a big issue (IMHO). And if this turns out to be real concern, we could experiment with a smaller mapping granularity. > > > > > Other reason mentioned I think was that only certain files benefit > > from DAX. But not much details are there after that. It will be nice > > to hear a more concrete use case and more details about this usage. > > > > Apart from our internal requirement, more fine grained control for DAX > shall be general and more flexible. Glad to hear more discussion from > community. Sure it will be more general and flexible. But there needs to be 1-2 good concrete use cases to justify additional complexity. And I don't think that so far a good use case has come forward. Thanks Vivek