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

Re: [Xen-devel] [PATCH] xen/arm: skip first page when RAM starts at 0x0



Hi,

On 26/04/2019 10:12, Jan Beulich wrote:
>>>> On 25.04.19 at 23:27, <Julien.Grall@xxxxxxx> wrote:
>> On 25/04/2019 18:51, Stefano Stabellini wrote:
>>> Xen assumes that RAM starts at addresses greater than 0x0 in a few
>>> places. The PDX code is one of them but there are more.
>>
>> A bit more context in the commit message would have been useful. Imagine
>> if we have to look at the commit message it in 2 years time.
>>
>>>
>>> For now, skip the first page in memory when the start addess is 0x0.
>>>
>>> Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
> 
> Isn't this in response to a bug report / completely different
> code change from someone at DornerWorks? In which case
> shouldn't there be a Reported-by?

There are two bugs. One in the buddy allocator (reported by dornerworks) 
and one in the PDX.

> 
>> For a first we need to gather feedback from contributors that know a bit
>> more of the code that may be affected. AFAICT, there are only two pieces
>> where we hand over memory to common code:
>>       - PDX: The problem is passing 0 to pdx_init_mask() will result to a
>> ~0 mask defeating the compression later on.
> 
> On x86 the function gets called only for memory blocks above 4Gb.
> Question is whether on Arm you also have some ad hoc boundary
> below which there's no point to look for bits to compact. If not I
> wonder why you call the function at all; at the very least (as you
> seem to imply) it shouldn't be called when
> bootinfo.mem.bank[0].start is zero.

So how does the PDX work for memory below 4GB? Do you still call 
pfn_to_pdx or those pages?

> 
>>       - Buddy allocator: Jan has been suggesting to stick a check in
>> init_xenheap_pages(). This would go the other ugliness existing to deal
>> with the buddy allocator.
> 
> And this would then also take care of future architectures Xen may
> get ported to. (No idea what other ugliness you refer to.)

See:

/*
  * Yuk! Ensure there is a one-page buffer between Xen and Dom zones, to
  * prevent merging of power-of-two blocks across the zone boundary.
  */

And the 0 is yet another hack for the buddy allocator.

Cheers,

-- 
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.