Re: [PATCH 2/2] percpu: km: no need to consider pcpu_group_offsets[0]

From: dennis@xxxxxxxxxx
Date: Mon Feb 25 2019 - 10:16:22 EST


On Sun, Feb 24, 2019 at 01:13:50PM +0000, Peng Fan wrote:
> percpu-km is used on UP systems which only has one group,
> so the group offset will be always 0, there is no need
> to subtract pcpu_group_offsets[0] when assigning chunk->base_addr
>
> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
> ---
> mm/percpu-km.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/percpu-km.c b/mm/percpu-km.c
> index 66e5598be876..8872c21a487b 100644
> --- a/mm/percpu-km.c
> +++ b/mm/percpu-km.c
> @@ -67,7 +67,7 @@ static struct pcpu_chunk *pcpu_create_chunk(gfp_t gfp)
> pcpu_set_page_chunk(nth_page(pages, i), chunk);
>
> chunk->data = pages;
> - chunk->base_addr = page_address(pages) - pcpu_group_offsets[0];
> + chunk->base_addr = page_address(pages);
>
> spin_lock_irqsave(&pcpu_lock, flags);
> pcpu_chunk_populated(chunk, 0, nr_pages, false);
> --
> 2.16.4
>

While I do think you're right, creating a chunk is not a part of the
critical path and subtracting 0 is incredibly minor overhead. So I'd
rather keep the code as is to maintain consistency between percpu-vm.c
and percpu-km.c.

Thanks,
Dennis