From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5780DC54FB9 for ; Mon, 20 Nov 2023 07:43:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFB9B6B03F9; Mon, 20 Nov 2023 02:43:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DABA86B03FB; Mon, 20 Nov 2023 02:43:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C9B4E6B03FC; Mon, 20 Nov 2023 02:43:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id BA2806B03F9 for ; Mon, 20 Nov 2023 02:43:19 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 90169160764 for ; Mon, 20 Nov 2023 07:43:19 +0000 (UTC) X-FDA: 81477542118.23.93EEB1D Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by imf13.hostedemail.com (Postfix) with ESMTP id 71F402000F for ; Mon, 20 Nov 2023 07:43:17 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=huAbql5G; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf13.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700466197; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=RK4zl4oXX+9ffQfmp+x5zDAqWaptspaiS2LzZxfnl6I=; b=VPFBXsfuu7Ew0e3373mfjRjNBvByiW9U57QDulm/Cd5oIkLrQYSbkhpciI2E0hvwaT+Pck OOtySSEFOuUuy56B4R8vrCCw1GeBOy+1kzlI5DFIVKXuTxCzYH+1z6EeqpCn6xMXXrBF8D or52V9hIYO6VNFZNUDoXgK2tGDMeC1g= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=huAbql5G; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf13.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700466197; a=rsa-sha256; cv=none; b=Yaou3FTKBNwUN2J9Rw5sBW5ECsLFCp5YmdqhVEDn1Qyh0YrB2+KnmIgl+zcbuG9AJ/PKC0 eQ51Ize9dersBrvZEVKhiNMTWdIwLxQVirUcP1FYKXPBCLQteAdJb95chCBHdd1cxApCUz im6BQgTRd/eD36DTYzj/cfkn11yvYZI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700466197; x=1732002197; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=0gKrCgxzW1iq86CT66UPkiumLl7mJKDuQElfDmpu7Y4=; b=huAbql5GAyXJ/XoVPUziR6wtQr5ZNEcSRVXgHIrrNzQbganaxaqAsQ7F HAdXGRJv1wfFKB22hOs1Jn3iBLHWbZRlWk9zS+3mkOZYP0kjrCGABckzr ly3T6U5Us6bYaI70OzgRqB/VwEvWLD01O0JczvTC5XqLKHCB8oSZQtphs FjGrwceIGL31XkI38r/xNxhFGLMAPp8DGvbfeWWecApSk+kW9JS8Mv7mR 0SoO8o0BqkyuS9NmXO98Vg5KfjenoSdXb6TMCvO5CvRdIg25GycgQQuZ6 cax3d4Lr3lva2QaXgVGID/yJ796JDwCHRuoILjy++dOWfnpRATobUBWvc Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="370913078" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="370913078" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2023 23:43:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="910020268" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="910020268" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2023 23:43:13 -0800 From: "Huang, Ying" To: Kairui Song Cc: linux-mm@kvack.org, Kairui Song , Andrew Morton , David Hildenbrand , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , linux-kernel@vger.kernel.org Subject: Re: [PATCH 09/24] mm/swap: inline __swap_count In-Reply-To: <20231119194740.94101-10-ryncsn@gmail.com> (Kairui Song's message of "Mon, 20 Nov 2023 03:47:25 +0800") References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-10-ryncsn@gmail.com> Date: Mon, 20 Nov 2023 15:41:12 +0800 Message-ID: <87il5wc1nr.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspam-User: X-Stat-Signature: qxbd665wzbswxxhi3a1awhtrnkgeox4w X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 71F402000F X-HE-Tag: 1700466197-255355 X-HE-Meta: U2FsdGVkX1/T8q+RGGGHOn2H9wgHMfIAzyUwtGyHhD0xz/NOZiVyLsj0tbPc3Jt/fLBzoXps3o61A8bcTkIYk4y3SWcGcrNTrKmIjPfqRuomEwBWnoC6hlMX3VgSjRnqh95v+DZExOsguj9aHOpCPzkSAbmCugRH1kMegGFNmQ8OiCkTVQdEo11IaVBKI0GOLhrYnR7B6sgNyuz4qLrCLkzWv7sd2J/ixZvntzQMBrKsKwMUNV7wdEsTrijpCGRp7qKGRqOaRWS3Dz4YjJE/G8eSFG/upozplRwfMp9jACk/w+1xzhbTmSPcjJyAWrDF4lOJsEQ2SpXl+OTxlnstviR0lTuFK3ExDbmibOJg8mfi/hOBX9tOVRPw88GtzY16BHMKedKHoxqMeqqxV/bF462mCb9txKoUiSkC8mBDfe56gQVxt7h3v9bGGefAH5jzsfcNXPyfEDoY6a4fgRaNhovP1jUVFFt1SG09nednXr2KlSxkMzDrT2JNefkAYqbJKiSv1E+K+bva22bwdfp6nS2jFTPln1YkLedjv5lGUDXkmXduodjU2yllO6dPThtfiMj7KZkercAnpn3rhETt8SZiCoCkknQznMJ0A/TumQbbHFV56SmIdmICXBYOZ9usS20+W27z1IR+ciJG55O6O6IZ5NvgaAgbEXTVtmM9mwXki1sLWTPPt+3vptEGptza14BZkbVK7C7GuhO+/M149sDSReKQKgbKfHJZfuyYD6CndbXEBz/N3PWdUPw7qF8+sHLFag4mURZVn0z++MtB3yO0QTZAwgLiQEZD+NcTyirAA5zN0pisYBL04+qfO4f4Mrzj0X9NCgEG9u1VwkAbeYmvFBF5FrEzhtxyHitWFokhOM46yJSYnGSRI/R5YMSbf2mcPNf33lamqhnnDgpPg+u/LUadjksM0MzdWC7+NMyYN+rLs8OPrXniXo+kPk3fESKC+b0Tz5GM3ALKyr4 1LHek6nw +8rlxdeS/PdyJrLKXLQ7xRJZyU33QUCBEP+rPcuVfi7xZiFj0VoQMTyCIs803AYxE9SGhed4eloOwfJH3rx7hQbsThM96mIfHFm/l0/PQHA+UOLX3jSQGVVS0OU7qufbM/Lsz27RYzYNWvMaXQU2NIrRqmDqCIJlwRHkWr8Sw8QTftS1fxrgNfI/cY+ETLxjcgXaDZ5epiM9q2+yHjnRY91M8Zzisq6JQhnokmjnNynux6CxGgGiJLCtsENGyH+yXSQtgb1723ybh1FWN/GdapCjDk6qMCyZFZKob3ogk5rypnkuRjriOa2M7Ew== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Kairui Song writes: > From: Kairui Song > > There is only one caller in swap subsystem now, where it can be inline > smoothly, avoid the memory access and function call overheads. > > Signed-off-by: Kairui Song > --- > include/linux/swap.h | 6 ------ > mm/swap_state.c | 6 +++--- > mm/swapfile.c | 8 -------- > 3 files changed, 3 insertions(+), 17 deletions(-) > > diff --git a/include/linux/swap.h b/include/linux/swap.h > index 2401990d954d..64a37819a9b3 100644 > --- a/include/linux/swap.h > +++ b/include/linux/swap.h > @@ -485,7 +485,6 @@ int swap_type_of(dev_t device, sector_t offset); > int find_first_swap(dev_t *device); > extern unsigned int count_swap_pages(int, int); > extern sector_t swapdev_block(int, pgoff_t); > -extern int __swap_count(swp_entry_t entry); > extern int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry); > extern int swp_swapcount(swp_entry_t entry); > extern struct swap_info_struct *page_swap_info(struct page *); > @@ -559,11 +558,6 @@ static inline void put_swap_folio(struct folio *folio, swp_entry_t swp) > { > } > > -static inline int __swap_count(swp_entry_t entry) > -{ > - return 0; > -} > - > static inline int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry) > { > return 0; > diff --git a/mm/swap_state.c b/mm/swap_state.c > index fb78f7f18ed7..d87c20f9f7ec 100644 > --- a/mm/swap_state.c > +++ b/mm/swap_state.c > @@ -316,9 +316,9 @@ void free_pages_and_swap_cache(struct encoded_page **pages, int nr) > release_pages(pages, nr); > } > > -static inline bool swap_use_no_readahead(struct swap_info_struct *si, swp_entry_t entry) > +static inline bool swap_use_no_readahead(struct swap_info_struct *si, pgoff_t offset) > { > - return data_race(si->flags & SWP_SYNCHRONOUS_IO) && __swap_count(entry) == 1; > + return data_race(si->flags & SWP_SYNCHRONOUS_IO) && swap_count(si->swap_map[offset]) == 1; > } > > static inline bool swap_use_vma_readahead(struct swap_info_struct *si) > @@ -928,7 +928,7 @@ struct page *swapin_readahead(swp_entry_t entry, gfp_t gfp_mask, > > si = swp_swap_info(entry); > mpol = get_vma_policy(vmf->vma, vmf->address, 0, &ilx); > - if (swap_use_no_readahead(si, entry)) { > + if (swap_use_no_readahead(si, swp_offset(entry))) { > page = swapin_no_readahead(entry, gfp_mask, mpol, ilx, vmf->vma->vm_mm); > cached = false; > } else if (swap_use_vma_readahead(si)) { > diff --git a/mm/swapfile.c b/mm/swapfile.c > index a8ae472ed2b6..e15a6c464a38 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1431,14 +1431,6 @@ void swapcache_free_entries(swp_entry_t *entries, int n) > spin_unlock(&p->lock); > } > > -int __swap_count(swp_entry_t entry) > -{ > - struct swap_info_struct *si = swp_swap_info(entry); > - pgoff_t offset = swp_offset(entry); > - > - return swap_count(si->swap_map[offset]); > -} > - I'd rather keep __swap_count() in the original place together with other swap count related functions. And si->swap_map[] was hided in swapfile.c before. I don't think the change will have any real performance improvement. > /* > * How many references to @entry are currently swapped out? > * This does not give an exact answer when swap count is continued, -- Best Regards, Huang, Ying