[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/7] spapr: Split memory nodes to power-of-two b
From: |
Alexey Kardashevskiy |
Subject: |
Re: [Qemu-devel] [PATCH 4/7] spapr: Split memory nodes to power-of-two blocks |
Date: |
Tue, 17 Jun 2014 17:07:18 +1000 |
User-agent: |
Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
On 06/16/2014 05:53 PM, Alexey Kardashevskiy wrote:
> Linux kernel expects nodes to have power-of-two size and
> does WARN_ON if this is not the case:
> [ 0.041052] devtmpfs: initialized
> [ 0.041292] ------------[ cut here ]------------
> [ 0.041456] WARNING: at drivers/base/memory.c:115
>
> This splits memory nodes into set of smaller blocks with
> a size which is a power of two. This makes sure the start
> address of every node is aligned to the node size.
>
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> ---
> hw/ppc/spapr.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 666b676..10202e2 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -710,8 +710,18 @@ static int spapr_populate_memory(sPAPREnvironment
> *spapr, void *fdt)
> mem_start += spapr->rma_size;
> node_size -= spapr->rma_size;
> }
> - spapr_populate_memory_node(fdt, i, mem_start, node_size);
> - mem_start += node_size;
> + for ( ; node_size; ) {
> + hwaddr sizetmp = pow2floor(node_size);
> +
> + /* mem_start != 0 here */
> + if (ffs(mem_start) < ffs(sizetmp)) {
> + sizetmp = MIN(sizetmp, 1 << (ffs(mem_start) - 1));
And I do not need MIN() here. Uff.
> + }
> +
> + spapr_populate_memory_node(fdt, i, mem_start, sizetmp);
> + node_size -= sizetmp;
> + mem_start += sizetmp;
> + }
> }
>
> return 0;
>
--
Alexey
[Qemu-devel] [PATCH 4/7] spapr: Split memory nodes to power-of-two blocks, Alexey Kardashevskiy, 2014/06/16
- Re: [Qemu-devel] [PATCH 4/7] spapr: Split memory nodes to power-of-two blocks,
Alexey Kardashevskiy <=
[Qemu-devel] [PATCH 1/7] spapr: Move DT memory node rendering to a helper, Alexey Kardashevskiy, 2014/06/16
[Qemu-devel] [PATCH 3/7] spapr: Refactor spapr_populate_memory(), Alexey Kardashevskiy, 2014/06/16
Re: [Qemu-devel] [PATCH 3/7] spapr: Refactor spapr_populate_memory(), Nishanth Aravamudan, 2014/06/20