lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 4 Feb 2022 13:13:29 -0800
From:   John Hubbard <jhubbard@...dia.com>
To:     "Matthew Wilcox (Oracle)" <willy@...radead.org>, linux-mm@...ck.org
Cc:     linux-kernel@...r.kernel.org
Subject: Re: [PATCH 01/75] mm/gup: Increment the page refcount before the
 pincount

On 2/4/22 11:57, Matthew Wilcox (Oracle) wrote:
> We should always increase the refcount before doing anything else to
> the page so that other page users see the elevated refcount first.

Absolutely agree in principle. Is there anything else to say, though,
such as why this matters here? Or is the change just being done for
"best practices"? (Which is still a very solid reason, of course.)
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy@...radead.org>
> ---
>   mm/gup.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/mm/gup.c b/mm/gup.c
> index a9d4d724aef7..08020987dfc0 100644
> --- a/mm/gup.c
> +++ b/mm/gup.c
> @@ -220,18 +220,18 @@ bool __must_check try_grab_page(struct page *page, unsigned int flags)
>   		if (WARN_ON_ONCE(page_ref_count(page) <= 0))
>   			return false;
>   
> -		if (hpage_pincount_available(page))
> -			hpage_pincount_add(page, 1);
> -		else
> -			refs = GUP_PIN_COUNTING_BIAS;
> -
>   		/*
>   		 * Similar to try_grab_compound_head(): even if using the
>   		 * hpage_pincount_add/_sub() routines, be sure to
>   		 * *also* increment the normal page refcount field at least
>   		 * once, so that the page really is pinned.
>   		 */
> -		page_ref_add(page, refs);

A fine point: this hunk removes the last use of "refs", which means that
this patch will lead to an unused variable warning. So I think it would
be best to remove the "int refs = 1;" line in this patch, rather than
waiting until patch #10.

With that change, please feel free to add:

Reviewed-by: John Hubbard <jhubbard@...dia.com>


thanks,
-- 
John Hubbard
NVIDIA

> +		if (hpage_pincount_available(page)) {
> +			page_ref_add(page, 1);
> +			hpage_pincount_add(page, 1);
> +		} else {
> +			page_ref_add(page, GUP_PIN_COUNTING_BIAS);
> +		}
>   
>   		mod_node_page_state(page_pgdat(page), NR_FOLL_PIN_ACQUIRED, 1);
>   	}

Powered by blists - more mailing lists