Re: [Linux-cachefs] [RFC 09/19] netfs: refactor netfs_rreq_unlock()

From: Gao Xiang
Date: Sat Dec 11 2021 - 01:57:43 EST


Hi Jeffle,

On Sat, Dec 11, 2021 at 01:44:47PM +0800, JeffleXu wrote:
>
>
> On 12/11/21 1:23 PM, JeffleXu wrote:
> >
> >
> > On 12/10/21 11:41 PM, David Howells wrote:
> >> Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote:
> >>
> >>> In demand-read case, the input folio of netfs API is may not the page
> >>
> >> "is may not the page"? I think you're missing a verb (and you have too many
> >> auxiliary verbs;-)
> >>
> >
> > Sorry for my poor English... What I want to express is that
> >
> > "In demand-read case, the input folio of netfs API may not be the page
> > cache inside the address space of the netfs file."
> >
>
> By the way, can we change the current address_space based netfs API to
> folio-based, which shall be more general? That is, the current
> implementation of netfs API uses (address_space, page_offset, len) tuple
> to describe the destination where the read data shall be store into.
> While in the demand-read case, the input folio may not be the page
> cache, and thus there's no address_space attached with it.

Thanks for your hard effort on this!

Just a rough look. Could we use a pseudo inode (actually the current
managed_inode can be used as this) to retain metadata for fscache
scenarios? (since it's better to cache all metadata rather than drop
directly, also the alloc_page() - free_page() cycle takes more time).

Also if my own limited understanding is correct, you could directly
use file inode pages with netfs_readpage_demand() rather than
get_meta_page and then memcpy to the file inode pages.

Thanks,
Gao Xiang

>
> --
> Thanks,
> Jeffle