On Mon, 11 Oct 2021 at 16:45, Yongji Xie <xieyongji@xxxxxxxxxxxxx> wrote: > > On Mon, Oct 11, 2021 at 9:21 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > On Mon, 11 Oct 2021 at 11:07, Xie Yongji <xieyongji@xxxxxxxxxxxxx> wrote: > > > > > > Recently we found the performance of small direct writes is bad > > > when writeback_cache enabled. This is because we need to get > > > attrs from userspace in fuse_update_get_attr() on each write. > > > The timeout for the attributes doesn't work since every direct write > > > will invalidate the attrs in fuse_direct_IO(). > > > > > > To fix it, this patch tries to avoid invalidating attrs if writeback_cache > > > is enabled since we should trust local size/ctime/mtime in this case. > > > > Hi, > > > > Thanks for the patch. > > > > Just pushed an update to > > git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.gitt#for-next > > (9ca3f8697158 ("fuse: selective attribute invalidation")) that should > > fix this behavior. > > > > Looks like fuse_update_get_attr() will still get attrs from userspace > each time with this commit applied. > > > Could you please test? > > > > I applied the commit 9ca3f8697158 ("fuse: selective attribute > invalidation") and tested it. But the issue still exists. Yeah, my bad. Pushed a more complete set of fixes to #for-next ending with e15a9a5fca6c ("fuse: take cache_mask into account in getattr") You should pull or cherry pick the complete branch. Thanks, Miklos