qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [Qemu-devel] [PATCH v6 2/6] spapr: Add LMB DR connectors


From: David Gibson
Subject: Re: [Qemu-ppc] [Qemu-devel] [PATCH v6 2/6] spapr: Add LMB DR connectors
Date: Tue, 7 Jul 2015 11:35:39 +1000
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, Jul 06, 2015 at 05:49:48PM +0200, Thomas Huth wrote:
> On Mon, 29 Jun 2015 14:14:28 +0530
> Bharata B Rao <address@hidden> wrote:
> 
> > Enable memory hotplug for pseries 2.4 and add LMB DR connectors.
> > With memory hotplug, enforce RAM size, NUMA node memory size and maxmem
> > to be a multiple of SPAPR_MEMORY_BLOCK_SIZE (256M) since that's the
> > granularity in which LMBs are represented and hot-added.
> > 
> > LMB DR connectors will be used by the memory hotplug code.
> > 
> > Signed-off-by: Bharata B Rao <address@hidden>
> > Signed-off-by: Michael Roth <address@hidden>
> >                [spapr_drc_reset implementation]
> > ---
> >  hw/ppc/spapr.c         | 88 
> > ++++++++++++++++++++++++++++++++++++++++++++++++++
> >  include/hw/ppc/spapr.h |  1 +
> >  2 files changed, 89 insertions(+)
> > 
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index 241ecad..bee868c 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> ...
> > +/*
> > + * If RAM size, maxmem size and individual node mem sizes aren't aligned
> > + * to SPAPR_MEMORY_BLOCK_SIZE(256MB), then refuse to start the guest
> > + * since we can't support such unaligned sizes with DRCONF_MEMORY.
> > + */
> > +static void spapr_validate_node_memory(MachineState *machine)
> > +{
> > +    int i;
> > +
> > +    if (machine->maxram_size % SPAPR_MEMORY_BLOCK_SIZE ||
> > +        machine->ram_size % SPAPR_MEMORY_BLOCK_SIZE) {
> > +        error_report("Can't support memory configuration where RAM size "
> > +                     "0x" RAM_ADDR_FMT " or maxmem size "
> > +                     "0x" RAM_ADDR_FMT " isn't aligned to %lld MB",
> > +                     machine->ram_size, machine->maxram_size,
> > +                     SPAPR_MEMORY_BLOCK_SIZE/M_BYTE);
> > +        exit(EXIT_FAILURE);
> > +    }
> > +
> > +    for (i = 0; i < nb_numa_nodes; i++) {
> > +        if (numa_info[i].node_mem &&
> > +            numa_info[i].node_mem % SPAPR_MEMORY_BLOCK_SIZE) {
> > +            error_report("Can't support memory configuration where memory "
> > +                         "size %lx of node %d isn't aligned to %lld MB",
> > +                         numa_info[i].node_mem, i,
> > +                         SPAPR_MEMORY_BLOCK_SIZE/M_BYTE);
> 
> FYI, this causes a compiler warning when compiling for a 32-bit host:
> 
> hw/ppc/spapr.c: In function 'spapr_validate_node_memory':
> hw/ppc/spapr.c:1638:26: warning: format '%lx' expects argument of type 'long 
> unsigned int', but argument 2 has type 'uint64_t' [-Wformat=]
> 
> I think you have to use PRIx64 or something similar here.

I've added a patch to correct this to spapr-next.

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: pgpSKI13vFfUS.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]