Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 161641
b: refs/heads/master
c: 788e5ab
h: refs/heads/master
i:
  161639: a4d0057
v: v3
  • Loading branch information
Tejun Heo committed Jul 3, 2009
1 parent 3d5a705 commit d2611cf
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 79ba6ac825fac187894e236c9df1ba5fcbf53fd3
refs/heads/master: 788e5abc5441e9046dd91c995c6f1f75bbd144bf
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/setup_percpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ static ssize_t __init setup_pcpu_embed(size_t static_size, bool chosen)
return -EINVAL;

return pcpu_embed_first_chunk(static_size, PERCPU_FIRST_CHUNK_RESERVE,
reserve - PERCPU_FIRST_CHUNK_RESERVE, -1);
reserve - PERCPU_FIRST_CHUNK_RESERVE);
}

/*
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/percpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ extern size_t __init pcpu_setup_first_chunk(pcpu_get_page_fn_t get_page_fn,

extern ssize_t __init pcpu_embed_first_chunk(
size_t static_size, size_t reserved_size,
ssize_t dyn_size, ssize_t unit_size);
ssize_t dyn_size);

/*
* Use this to get to a cpu's version of the per-cpu object
Expand Down
18 changes: 6 additions & 12 deletions trunk/mm/percpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1207,7 +1207,6 @@ static struct page * __init pcpue_get_page(unsigned int cpu, int pageno)
* @static_size: the size of static percpu area in bytes
* @reserved_size: the size of reserved percpu area in bytes
* @dyn_size: free size for dynamic allocation in bytes, -1 for auto
* @unit_size: unit size in bytes, must be multiple of PAGE_SIZE, -1 for auto
*
* This is a helper to ease setting up embedded first percpu chunk and
* can be called where pcpu_setup_first_chunk() is expected.
Expand All @@ -1219,9 +1218,9 @@ static struct page * __init pcpue_get_page(unsigned int cpu, int pageno)
* page size.
*
* When @dyn_size is positive, dynamic area might be larger than
* specified to fill page alignment. Also, when @dyn_size is auto,
* @dyn_size does not fill the whole first chunk but only what's
* necessary for page alignment after static and reserved areas.
* specified to fill page alignment. When @dyn_size is auto,
* @dyn_size is just big enough to fill page alignment after static
* and reserved areas.
*
* If the needed size is smaller than the minimum or specified unit
* size, the leftover is returned to the bootmem allocator.
Expand All @@ -1231,7 +1230,7 @@ static struct page * __init pcpue_get_page(unsigned int cpu, int pageno)
* percpu access on success, -errno on failure.
*/
ssize_t __init pcpu_embed_first_chunk(size_t static_size, size_t reserved_size,
ssize_t dyn_size, ssize_t unit_size)
ssize_t dyn_size)
{
size_t chunk_size;
unsigned int cpu;
Expand All @@ -1242,12 +1241,7 @@ ssize_t __init pcpu_embed_first_chunk(size_t static_size, size_t reserved_size,
if (dyn_size != 0)
dyn_size = pcpue_size - static_size - reserved_size;

if (unit_size >= 0) {
BUG_ON(unit_size < pcpue_size);
pcpue_unit_size = unit_size;
} else
pcpue_unit_size = max_t(size_t, pcpue_size, PCPU_MIN_UNIT_SIZE);

pcpue_unit_size = max_t(size_t, pcpue_size, PCPU_MIN_UNIT_SIZE);
chunk_size = pcpue_unit_size * num_possible_cpus();

pcpue_ptr = __alloc_bootmem_nopanic(chunk_size, PAGE_SIZE,
Expand Down Expand Up @@ -1304,7 +1298,7 @@ void __init setup_per_cpu_areas(void)
* what the legacy allocator did.
*/
unit_size = pcpu_embed_first_chunk(static_size, PERCPU_MODULE_RESERVE,
PERCPU_DYNAMIC_RESERVE, -1);
PERCPU_DYNAMIC_RESERVE);
if (unit_size < 0)
panic("Failed to initialized percpu areas.");

Expand Down

0 comments on commit d2611cf

Please sign in to comment.