[v2,8/9] mm/page_io: convert count_swpout_vm_event() to take in a folio

Message ID 20230719095848.3422629-9-zhangpeng362@huawei.com
State New
Headers
Series Convert several functions in page_io.c to use a folio |

Commit Message

zhangpeng (AS) July 19, 2023, 9:58 a.m. UTC
  From: ZhangPeng <zhangpeng362@huawei.com>

Convert count_swpout_vm_event() to take in a folio. We can remove five
implicit calls to compound_head() by taking in a folio.

Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
---
 mm/page_io.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
  

Comments

Matthew Wilcox July 19, 2023, 2:24 p.m. UTC | #1
On Wed, Jul 19, 2023 at 05:58:47PM +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_pmd_mappable(folio)))
>  		count_vm_event(THP_SWPOUT);
>  #endif

As I said in my earlier response, you don't need the ifdefs.  Check
the definition of folio_test_pmd_mappable.
  
zhangpeng (AS) July 20, 2023, 9:31 a.m. UTC | #2
On 2023/7/19 22:24, Matthew Wilcox wrote:

> On Wed, Jul 19, 2023 at 05:58:47PM +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_pmd_mappable(folio)))
>>   		count_vm_event(THP_SWPOUT);
>>   #endif
> As I said in my earlier response, you don't need the ifdefs.  Check
> the definition of folio_test_pmd_mappable.

Sorry I forgot to delete the ifdefs. I'll fix it in a v3.
Thanks.
  

Patch

diff --git a/mm/page_io.c b/mm/page_io.c
index e28395331bb0..fa8caf1c05d8 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -205,13 +205,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_pmd_mappable(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)
@@ -280,7 +280,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++)
@@ -339,7 +339,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);
@@ -362,7 +362,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);