Re: [PATCH v2 08/23] percpu: modify base_addr to be region specific

From: Josef Bacik
Date: Tue Jul 25 2017 - 14:24:10 EST


On Mon, Jul 24, 2017 at 07:02:05PM -0400, Dennis Zhou wrote:
> From: "Dennis Zhou (Facebook)" <dennisszhou@xxxxxxxxx>
>
> Originally, the first chunk was served by one or two chunks, each
> given a region they are responsible for. Despite this, the arithmetic
> was based off of the true base_addr of the chunk making it be overly
> inclusive.
>
> This patch moves the base_addr of chunks that are responsible for the
> first chunk. The base_addr must remain page aligned to keep the
> address alignment correct, so it is the beginning of the region served
> page aligned down. start_offset holds where the region served begins
> from this new base_addr.
>
> The corresponding percpu address checks are modified to be more specific
> as a result. The first chunk considers only the dynamic region and both
> first chunk and reserved chunk checks ignore the static region. The
> static region addresses should never be passed into the allocator. There
> is no impact here besides distinguishing the first chunk and making the
> checks specific.
>
> The percpu pointer to physical address is left intact as addresses are
> not given out in the non-allocated portion of percpu memory.
>
> nr_pages is added to pcpu_chunk to keep track of the size of the entire
> region served containing both start_offset and end_offset. This variable
> will be used to manage the bitmap allocator.
>
> Signed-off-by: Dennis Zhou <dennisszhou@xxxxxxxxx>

Reviewed-by: Josef Bacik <jbacik@xxxxxx>

Thanks,

Josef