diff mbox series

[01/12] percpu: update free path with correct new free region

Message ID 20190228021839.55779-2-dennis@kernel.org (mailing list archive)
State New, archived
Headers show
Series introduce percpu block scan_hint | expand

Commit Message

Dennis Zhou Feb. 28, 2019, 2:18 a.m. UTC
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(-)

Comments

Peng Fan March 2, 2019, 12:56 p.m. UTC | #1
> -----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 mbox series

Patch

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);
 }
 
 /**