2018-04-04 00:41:52

by Joonsoo Kim

[permalink] [raw]
Subject: Re: + mm-slabc-remove-duplicated-check-of-colour_next.patch added to -mm tree

On Mon, Mar 12, 2018 at 03:13:33PM -0700, [email protected] wrote:
>
> The patch titled
> Subject: mm/slab.c: remove duplicated check of colour_next
> has been added to the -mm tree. Its filename is
> mm-slabc-remove-duplicated-check-of-colour_next.patch
>
> This patch should soon appear at
> http://ozlabs.org/~akpm/mmots/broken-out/mm-slabc-remove-duplicated-check-of-colour_next.patch
> and later at
> http://ozlabs.org/~akpm/mmotm/broken-out/mm-slabc-remove-duplicated-check-of-colour_next.patch
>
> Before you just go and hit "reply", please:
> a) Consider who else should be cc'ed
> b) Prefer to cc a suitable mailing list as well
> c) Ideally: find the original patch on the mailing list and do a
> reply-to-all to that, adding suitable additional cc's
>
> *** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
>
> The -mm tree is included into linux-next and is updated
> there every 3-4 working days
>
> ------------------------------------------------------
> From: Roman Lakeev <[email protected]>
> Subject: mm/slab.c: remove duplicated check of colour_next
>
> Remove check that offset greater than cachep->colour bacause this is
> already checked in previous lines.
>
> Link: http://lkml.kernel.org/r/[email protected]
> Signed-off-by: Roman Lakeev <[email protected]>
> Acked-by: Christoph Lameter <[email protected]>
> Acked-by: David Rientjes <[email protected]>
> Reviewed-by: Andrew Morton <[email protected]>
> Cc: Pekka Enberg <[email protected]>
> Cc: Joonsoo Kim <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> mm/slab.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff -puN mm/slab.c~mm-slabc-remove-duplicated-check-of-colour_next mm/slab.c
> --- a/mm/slab.c~mm-slabc-remove-duplicated-check-of-colour_next
> +++ a/mm/slab.c
> @@ -2674,11 +2674,7 @@ static struct page *cache_grow_begin(str
> if (n->colour_next >= cachep->colour)
> n->colour_next = 0;
>
> - offset = n->colour_next;
> - if (offset >= cachep->colour)
> - offset = 0;
> -
> - offset *= cachep->colour_off;
> + offset = n->colour_next * cachep->colour_off;
>
> /* Get slab management. */
> freelist = alloc_slabmgmt(cachep, page, offset,

Hello, all.

This n->colour_next can be update at the other cpu since
there is no lock to protect it. So, removing this one
another check can make the offset overflow.

Andrew, could you drop this patch?

Thanks.