Message ID | 20230717132602.2202147-6-zhangpeng362@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Convert several functions in page_io.c to use a folio | expand |
On Mon, Jul 17, 2023 at 09:26:01PM +0800, Peng Zhang wrote: > -static inline void count_swpout_vm_event(struct page *page) > +static inline void count_swpout_vm_event(struct folio *folio) > { > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - if (unlikely(PageTransHuge(page))) > + if (unlikely(folio_test_large(folio))) > count_vm_event(THP_SWPOUT); > #endif Since this is a THP_SWPOUT event, we should do this as: -#ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (unlikely(PageTransHuge(page))) + if (folio_test_pmd_mappable(folio)) count_vm_event(THP_SWPOUT); -#endif
On 2023/7/17 21:48, Matthew Wilcox wrote: > On Mon, Jul 17, 2023 at 09:26:01PM +0800, Peng Zhang wrote: >> -static inline void count_swpout_vm_event(struct page *page) >> +static inline void count_swpout_vm_event(struct folio *folio) >> { >> #ifdef CONFIG_TRANSPARENT_HUGEPAGE >> - if (unlikely(PageTransHuge(page))) >> + if (unlikely(folio_test_large(folio))) >> count_vm_event(THP_SWPOUT); >> #endif > Since this is a THP_SWPOUT event, we should do this as: > > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - if (unlikely(PageTransHuge(page))) > + if (folio_test_pmd_mappable(folio)) > count_vm_event(THP_SWPOUT); > -#endif Agreed. I'll convert PageTransHuge to folio_test_pmd_mappable.
diff --git a/mm/page_io.c b/mm/page_io.c index 84cc9e652451..66e8403bf96e 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -208,13 +208,13 @@ int swap_writepage(struct page *page, struct writeback_control *wbc) return 0; } -static inline void count_swpout_vm_event(struct page *page) +static inline void count_swpout_vm_event(struct folio *folio) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (unlikely(PageTransHuge(page))) + if (unlikely(folio_test_large(folio))) count_vm_event(THP_SWPOUT); #endif - count_vm_events(PSWPOUT, thp_nr_pages(page)); + count_vm_events(PSWPOUT, folio_nr_pages(folio)); } #if defined(CONFIG_MEMCG) && defined(CONFIG_BLK_CGROUP) @@ -283,7 +283,7 @@ static void sio_write_complete(struct kiocb *iocb, long ret) } } else { for (p = 0; p < sio->pages; p++) - count_swpout_vm_event(sio->bvec[p].bv_page); + count_swpout_vm_event(page_folio(sio->bvec[p].bv_page)); } for (p = 0; p < sio->pages; p++) @@ -342,7 +342,7 @@ static void swap_writepage_bdev_sync(struct page *page, __bio_add_page(&bio, page, thp_size(page), 0); bio_associate_blkg_from_page(&bio, page); - count_swpout_vm_event(page); + count_swpout_vm_event(folio); folio_start_writeback(folio); folio_unlock(folio); @@ -365,7 +365,7 @@ static void swap_writepage_bdev_async(struct page *page, __bio_add_page(bio, page, thp_size(page), 0); bio_associate_blkg_from_page(bio, page); - count_swpout_vm_event(page); + count_swpout_vm_event(folio); folio_start_writeback(folio); folio_unlock(folio); submit_bio(bio);