mm:vmscan: fix return negative unneed to detect VM_EXEC

Message ID 20231025154432.314-1-justinjiang@vivo.com
State New
Headers
Series mm:vmscan: fix return negative unneed to detect VM_EXEC |

Commit Message

Zhiguo Jiang Oct. 25, 2023, 3:44 p.m. UTC
  The reason that folio_referenced() returns negative is because
rwc.contended is 1, vm_flags is 0 at this time and so there is
no need to detect VM_EXEC. And only when referenced > 0, pra->vm_flags
will be filled with vma->vm_flags in folio_referenced_one().

Signed-off-by: Zhiguo Jiang <justinjiang@vivo.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.39.0
  

Comments

Andrew Morton Nov. 6, 2023, 6:40 p.m. UTC | #1
On Wed, 25 Oct 2023 23:44:32 +0800 Zhiguo Jiang <justinjiang@vivo.com> wrote:

> The reason that folio_referenced() returns negative is because
> rwc.contended is 1, vm_flags is 0 at this time and so there is
> no need to detect VM_EXEC. And only when referenced > 0, pra->vm_flags
> will be filled with vma->vm_flags in folio_referenced_one().
> 
> ...
>
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2095,7 +2095,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
>  
>  		/* Referenced or rmap lock contention: rotate */
>  		if (folio_referenced(folio, 0, sc->target_mem_cgroup,
> -				     &vm_flags) != 0) {
> +				     &vm_flags) > 0) {
>  			/*
>  			 * Identify referenced, file-backed active folios and
>  			 * give them one more trip around the active list. So

I suspect this email did not make it through the linux-mm server.  I
can't find it in my archive or at https://lore.kernel.org/linux-mm/.

So please resend?  Prior to doing so, please update the changelog to
describe the before- and after- userspace visible effects of the
change.

Thanks.
  

Patch

diff --git a/mm/vmscan.c b/mm/vmscan.c
index e587dafeef94..f0b4325cccd4 100755
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2095,7 +2095,7 @@  static void shrink_active_list(unsigned long nr_to_scan,
 
 		/* Referenced or rmap lock contention: rotate */
 		if (folio_referenced(folio, 0, sc->target_mem_cgroup,
-				     &vm_flags) != 0) {
+				     &vm_flags) > 0) {
 			/*
 			 * Identify referenced, file-backed active folios and
 			 * give them one more trip around the active list. So