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

Re: [Xen-devel] [PATCH 1/2] x86/xen: set regions above the end of RAM as 1:1



On 03/01/14 18:12, Stefano Stabellini wrote:
> On Fri, 3 Jan 2014, David Vrabel wrote:
>> From: David Vrabel <david.vrabel@xxxxxxxxxx>
>>
>> PCI devices may have BARs located above the end of RAM so mark such
>> frames as identity frames in the p2m (instead of the default of
>> missing).
>>
>> PFNs outside the p2m (above MAX_P2M_PFN) are also considered to be
>> identity frames for the same reason.
>>
>> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> 
> Shouldn't this be the case only for dom0?

I don't see why.  DomUs can have PCI devices with high MMIO regions
passed-through.

>> --- a/arch/x86/xen/p2m.c
>> +++ b/arch/x86/xen/p2m.c
>> @@ -481,7 +481,7 @@ unsigned long get_phys_to_machine(unsigned long pfn)
>>      unsigned topidx, mididx, idx;
>>  
>>      if (unlikely(pfn >= MAX_P2M_PFN))
>> -            return INVALID_P2M_ENTRY;
>> +            return IDENTITY_FRAME(pfn);
>>  
>>      topidx = p2m_top_index(pfn);
>>      mididx = p2m_mid_index(pfn);
>> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
>> index 68c054f..6d7798f 100644
>> --- a/arch/x86/xen/setup.c
>> +++ b/arch/x86/xen/setup.c
>> @@ -412,6 +412,16 @@ char * __init xen_memory_setup(void)
>>              max_pfn = min(MAX_DOMAIN_PAGES, last_pfn);
>>              mem_end = PFN_PHYS(max_pfn);
>>      }
>> +
>> +    /*
>> +     * Set the rest as identity mapped, in case PCI BARs are
>> +     * located here.
>> +     *
>> +     * PFNs above MAX_P2M_PFN are considered identity mapped as
>> +     * well.
>> +     */
>> +    set_phys_range_identity(max_pfn + 1, ~0ul);
>> +
> 
> Wouldn't this increase the size of the P2M considerably?

I thought the p2m code would be smart but I see I need to add a
p2m_mid_identity page (similar to the existign p2m_mid_missing page) and
make sure we use it.

David

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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