Message ID | 20240423170339.54131-4-ryncsn@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm/swap: optimize swap cache search space | expand |
On Wed, Apr 24, 2024 at 01:03:34AM +0800, Kairui Song wrote: > @@ -4086,8 +4086,7 @@ void f2fs_clear_page_cache_dirty_tag(struct page *page) > unsigned long flags; > > xa_lock_irqsave(&mapping->i_pages, flags); > - __xa_clear_mark(&mapping->i_pages, page_index(page), > - PAGECACHE_TAG_DIRTY); > + __xa_clear_mark(&mapping->i_pages, page->index, PAGECACHE_TAG_DIRTY); > xa_unlock_irqrestore(&mapping->i_pages, flags); > } I just sent a patch which is going to conflict with this: https://lore.kernel.org/linux-mm/20240423225552.4113447-3-willy@infradead.org/ Chao Yu, Jaegeuk Kim; what are your plans for converting f2fs to use folios? This is getting quite urgent.
On 2024/4/24 6:58, Matthew Wilcox wrote: > On Wed, Apr 24, 2024 at 01:03:34AM +0800, Kairui Song wrote: >> @@ -4086,8 +4086,7 @@ void f2fs_clear_page_cache_dirty_tag(struct page *page) >> unsigned long flags; >> >> xa_lock_irqsave(&mapping->i_pages, flags); >> - __xa_clear_mark(&mapping->i_pages, page_index(page), >> - PAGECACHE_TAG_DIRTY); >> + __xa_clear_mark(&mapping->i_pages, page->index, PAGECACHE_TAG_DIRTY); >> xa_unlock_irqrestore(&mapping->i_pages, flags); >> } > > I just sent a patch which is going to conflict with this: > > https://lore.kernel.org/linux-mm/20240423225552.4113447-3-willy@infradead.org/ > > Chao Yu, Jaegeuk Kim; what are your plans for converting f2fs to use Hi Matthew, I've converted .read_folio and .readahead of f2fs to use folio w/ below patchset, and let me take a look how to support and enable large folio... https://lore.kernel.org/linux-f2fs-devel/20240422062417.2421616-1-chao@kernel.org/ Thanks, > folios? This is getting quite urgent.
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index d9494b5fc7c1..12d5bbd18755 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2057,7 +2057,7 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page, sector_t block_nr; int ret = 0; - block_in_file = (sector_t)page_index(page); + block_in_file = (sector_t)page->index; last_block = block_in_file + nr_pages; last_block_in_file = bytes_to_blks(inode, f2fs_readpage_limit(inode) + blocksize - 1); @@ -4086,8 +4086,7 @@ void f2fs_clear_page_cache_dirty_tag(struct page *page) unsigned long flags; xa_lock_irqsave(&mapping->i_pages, flags); - __xa_clear_mark(&mapping->i_pages, page_index(page), - PAGECACHE_TAG_DIRTY); + __xa_clear_mark(&mapping->i_pages, page->index, PAGECACHE_TAG_DIRTY); xa_unlock_irqrestore(&mapping->i_pages, flags); }