Re: + mm-slabc-remove-duplicated-check-of-colour_next.patch added to -mm tree

From: Joonsoo Kim
Date: Tue Apr 03 2018 - 20:43:03 EST


On Mon, Mar 12, 2018 at 03:13:33PM -0700, akpm@xxxxxxxxxxxxxxxxxxxx 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 <sunnyddayss@xxxxxxxxx>
> 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/877eqilr71.fsf@xxxxxxxxx
> Signed-off-by: Roman Lakeev <sunnyddayss@xxxxxxxxx>
> Acked-by: Christoph Lameter <cl@xxxxxxxxx>
> Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Pekka Enberg <penberg@xxxxxxxxxx>
> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
> 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.