Message ID | 20190228021839.55779-2-dennis@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | introduce percpu block scan_hint | expand |
> -----Original Message----- > From: owner-linux-mm@kvack.org [mailto:owner-linux-mm@kvack.org] On > Behalf Of Dennis Zhou > Sent: 2019年2月28日 10:18 > To: Dennis Zhou <dennis@kernel.org>; Tejun Heo <tj@kernel.org>; Christoph > Lameter <cl@linux.com> > Cc: Vlad Buslov <vladbu@mellanox.com>; kernel-team@fb.com; > linux-mm@kvack.org; linux-kernel@vger.kernel.org > Subject: [PATCH 01/12] percpu: update free path with correct new free region > > When updating the chunk's contig_hint on the free path of a hint that does not > touch the page boundaries, it was incorrectly using the starting offset of the > free region and the block's contig_hint. This could lead to incorrect > assumptions about fit given a size and better alignment of the start. Fix this by > using (end - start) as this is only called when updating a hint within a block. > > Signed-off-by: Dennis Zhou <dennis@kernel.org> > --- > mm/percpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/percpu.c b/mm/percpu.c > index db86282fd024..53bd79a617b1 100644 > --- a/mm/percpu.c > +++ b/mm/percpu.c > @@ -871,7 +871,7 @@ static void pcpu_block_update_hint_free(struct > pcpu_chunk *chunk, int bit_off, > pcpu_chunk_refresh_hint(chunk); > else > pcpu_chunk_update(chunk, pcpu_block_off_to_off(s_index, start), > - s_block->contig_hint); > + end - start); > } Reviewed-by: Peng Fan <peng.fan@nxp.com> > > /** > -- > 2.17.1
diff --git a/mm/percpu.c b/mm/percpu.c index db86282fd024..53bd79a617b1 100644 --- a/mm/percpu.c +++ b/mm/percpu.c @@ -871,7 +871,7 @@ static void pcpu_block_update_hint_free(struct pcpu_chunk *chunk, int bit_off, pcpu_chunk_refresh_hint(chunk); else pcpu_chunk_update(chunk, pcpu_block_off_to_off(s_index, start), - s_block->contig_hint); + end - start); } /**
When updating the chunk's contig_hint on the free path of a hint that does not touch the page boundaries, it was incorrectly using the starting offset of the free region and the block's contig_hint. This could lead to incorrect assumptions about fit given a size and better alignment of the start. Fix this by using (end - start) as this is only called when updating a hint within a block. Signed-off-by: Dennis Zhou <dennis@kernel.org> --- mm/percpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)