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

Re: [Xen-devel] Xen-unstable panic: FATAL PAGE FAULT



>>> On 31.08.10 at 18:01, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote:
> On 31/08/2010 16:07, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
> 
>>>>> On 31.08.10 at 16:49, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote:
>>> I'm cc'ing Jan to see what we can get away with in doing arithmetic on
>>> page_info pointers. What's the guaranteed smallest aligned contiguous ranges
>>> of mfn in the frame_table now, Jan? (i.e., ranges in which adjacent
>>> page_info structs relate to adjacent MFNs)
>> 
>> Any range of struct page_info-s that crosses a 2Mb boundary is
>> unsafe to make assumptions upon
> 
> Where is even that constraint ensured in the code? I can't see it (I would
> have assumed that pfn_pdx_hole_setup() would be ensuring it).

That's somewhat implicit: srat_parse_regions() gets passed an
address that is at least BOOTSTRAP_DIRECTMAP_END (i.e. 4G).
Thus srat_parse_regions() starts off with a mask with the lower
32 bits all set (only more bits can get set subsequently). Thus
the earliest zero bit pfn_pdx_hole_setup() can find is bit 20
(due to the >> PAGE_SHIFT in the invocation). Consequently
the smallest chunk where arithmetic is valid really is 4Gb, not
256Mb as I first wrote.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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