Re: [PATCH 0/8] Convert reiserfs from b_page to b_folio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Dec 18, 2022 at 09:09:56AM +0100, Fabio M. De Francesco wrote:
> It all started when months ago I saw a patch from Matthew about the conversion 
> from kmap_local_page() to kmap_local_folio() in ext2_get_page().
> 
> Here I wanted to comment on the xfstests failures but, when I read patch 2/8 
> of this series and saw kmap() converted to kmap_local_folio(), I thought to 
> also use this opportunity to ask about why and when kmap_local_folio() should 
> be preferred over kmap_local_page().
> 
> Obviously, I have nothing against these conversions. I would only like to 
> understand what are the reasons behind the preference for the folio function.

I should probably update this, but here's a good start on folio vs page:
https://lore.kernel.org/linux-fsdevel/YvV1KTyzZ+Jrtj9x@xxxxxxxxxxxxxxxxxxxx/

> Mine is a general question about design, necessity, opportunity: what were the 
> reasons why, in the above-mentioned cases, the use of kmap_local_folio() has 
> been preferred over kmap_local_page()? 
> 
> I saw that this series is about converting from b_page to b_folio, therefore 
> kmap_local_folio() is the obvious choice here.
> 
> But my mind went back again to ext2_get_page :-)
> 
> It looks to me that ext2_get_page() was working properly with 
> kmap_local_page() (since you made the conversion from kmap()). Therefore I 
> could not understand why it is preferred to call read_mapping_folio() to get a 
> folio and then map a page of that folio with kmap_local_folio(). 
> 
> I used to think that read_mapping_page() + kmap_local_page() was all we 
> needed. ATM I have not enough knowledge of VFS/filesystems to understand on my 
> own what we gain from the other way to local map pages.    

read_mapping_page() is scheduled for removal.  All callers need to be
converted to read_mapping_folio() (or another variant if preferable).
I don't mind following along behind your conversions to kmap_local_page()
and converting them to kmap_local_folio(), but if I can go straight from
kmap() / kmap_atomic() to kmap_local_folio(), then I'll do that.

Eventually, kmap_local_page() will _probably_ disappear.  ext2_get_page()
is really only partially converted, and you can see that by the way it
calls ext2_check_page() instead of ext2_check_folio().  I have a design
in place for ext2_check_folio() that handles mapping large folios,
but it isn't on the top of my pile right now.

> I'd really like to work on converting fs/ufs to folios but you know that I'll 
> have enough time to work on other projects only starting by the end of 
> January. 
> 
> AFAIK this task has mainly got to do with the conversions of the address space 
> operations (correct?). I know too little to be able to estimate how much time 
> it takes but I'm pretty sure it needs more than I currently can set aside.
> 
> Instead I could easily devolve the time it is needed for making the  
> memcpy_{to|from}_folio() helpers you talked about in a patch of this series, 
> unless you or Matthew prefer to do yourselves. Please let me know.

I've been wondering about a memcpy_(to|from)_folio() helper too, but I
haven't read Ira's message about it yet.  I'll comment over there.



[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux