On Mon, Jul 24, 2017 at 07:02:05PM -0400, Dennis Zhou wrote: > From: "Dennis Zhou (Facebook)" <dennissz...@gmail.com> > > 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 <dennissz...@gmail.com>
Reviewed-by: Josef Bacik <jba...@fb.com> Thanks, Josef