qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Regression (?) due to c4177479 ('spapr: make sure RMA i


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] Regression (?) due to c4177479 ('spapr: make sure RMA is in first mode of first memory node')
Date: Fri, 18 Apr 2014 08:43:34 +1000
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

On 04/18/2014 06:25 AM, Nishanth Aravamudan wrote:
> Hi Alexey,
> 
> Prior to the $SUBJECT commit, we could present memoryless node0s to
> guests. Now, we indicate that we don't have the requisite 128M for the
> RMA if node 0 has no memory. Note that a memoryless node0 is possible
> under PowerVM (but not predictably present) so I was hoping to use KVM
> to test relevant fixes for memoryless nodes.
> 
> I think this change is a misinterpretation of the PAPR standard, though.
> Yes, the RMA must be in the first block of memory, but that isn't
> necessarily on node 0. The topology of a PAPR-compliant guest does not
> require a node 0 (and in fact, under PowerVM, Linux doesn't actually
> require node 0 either, but it would under KVM).
> 
> Thoughts? I suppose it's fine to say that node 0 must be sufficiently
> populated under KVM -- there's not really a reason to not have memory on
> a given node (except maybe ballooning). I can keep the commit reverted
> locally for testing purposes. Just wanted to see if the semantic change
> was intentional.


PAPR spec 2.7:
C.6.6 Memory Node
===
This section defines the PAPR modifications to the OF /memory node. In
PAPR, the memory allocated to an OS image
may be divided into a number of allocation units called “regions” or
“Logical Memory Blocks (LMB). An OS image
may be dynamically allocated additional regions or may be asked to release
regions. Each LMB is either represented in
the device tree by its own /memory node or by an entry in
/ibm,dynamic-reconfiguration-memory nodes
(see Section C.6.6.2‚ “ibm,dynamic-reconfiguration-memory‚” on page 1089).
The /memory node that refers to the
storage starting at real address zero (“reg” property starting at the value
zero) always remains allocated to an OS image.

The client program is initially loaded into this storage, called the RMA,
that is represented by the first value of the
“reg” property of this first /memory node.
===

The last sentence is why the change was made. It does not say "first
populated" node. I am adding Ben as he had very strong opinion about this
thing.


-- 
Alexey



reply via email to

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