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

Re: [Xen-devel] [PATCH V1] xen/arm: domain_build: introduce dom0_lowmem bootargs



On Wed, Sep 14, 2016 at 01:34:10PM +0100, Julien Grall wrote:
>
>
>On 14/09/16 13:18, Peng Fan wrote:
>>Hello Julien,
>>
>>On Wed, Sep 14, 2016 at 01:06:01PM +0100, Julien Grall wrote:
>>>
>>>
>>>On 14/09/16 13:03, Peng Fan wrote:
>>>>Hello Julien,
>>>
>>>Hello Peng,
>>>
>>>>On Wed, Sep 14, 2016 at 11:47:10AM +0100, Julien Grall wrote:
>>>>>Hello,
>>>>>
>>>>>On 14/09/16 08:41, Peng Fan wrote:
>>>>>>On Wed, Sep 14, 2016 at 08:23:24AM +0100, Julien Grall wrote:
>>>>>>diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>>>>index 35ab08d..cc71e6f 100644
>>>>>>--- a/xen/arch/arm/domain_build.c
>>>>>>+++ b/xen/arch/arm/domain_build.c
>>>>>>@@ -28,6 +28,8 @@
>>>>>>
>>>>>>static unsigned int __initdata opt_dom0_max_vcpus;
>>>>>>integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
>>>>>>+static bool_t __initdata opt_dom0_use_lowmem;
>>>>>>+boolean_param("dom0_use_lowmem", opt_dom0_use_lowmem);
>>>>>>
>>>>>>int dom0_11_mapping = 1;
>>>>>>
>>>>>>@@ -244,7 +246,7 @@ static void allocate_memory(struct domain *d, struct
>>>>>>kernel_info *kinfo)
>>>>>>   unsigned int order = get_11_allocation_size(kinfo->unassigned_mem);
>>>>>>   int i;
>>>>>>  
>>>>>>-    bool_t lowmem = is_32bit_domain(d);
>>>>>>+    bool_t lowmem = is_32bit_domain(d) || opt_dom0_use_lowmem;
>>>>>>   unsigned int bits;
>>>>>>
>>>>>>
>>>>>>Pass "dom0_use_lowmem=1" to xen to allocate lowmem as much as possible.
>>>>>
>>>>>Again, what is the benefit to have a command line option for that?
>>>>
>>>>Then you prefer directly change "bool_t lowmem = is_32bit_domain(d);" to 
>>>>"bool_t lowmem = true" ?
>>>>I just want to give user a choice.
>>>
>>>We don't add new command line parameter just because they look cool to have.
>>>So far, you did not explain why it would be good to let the choice to the
>>>user and how it could be used.
>>
>>I have not try, if there is no lowmem.
>>
>>I have not look into alloc_domheap_pages.
>>I am not sure whether there is such a platform or not,
>>just thinking if there is soc that dram memory starts from 4GB, and there is 
>>no dram
>>below 4GB. If we still can get memory when lowmem is true, I am ok to change 
>>directly assign
>>lowmem with value true. Anyway I have not look into the internals of domheap 
>>and
>>not sure whether there is such a platform that no lowmem (:-
>
>We cannot exclude this possibility. However, the only reason that Xen is
>requiring to allocate a bank below 4GB for 32-bit domain is to handle
>non-LPAE kernel.

Now also need to handle device that have DMA limitation -:)

>
>I personally don't think this is a hard requirement and instead of panicking
>we should print a warning to say "no bank has been allocated below 4GB" or "a
>bank of N MB has been allocated below 4GB".
>
>So my suggestion is to allocate as much as possible lowmem (i.e below 4GB)
>and if it does not work print a warning then allocate the first bank above
>4GB.
>
>I much prefer to let Xen decide itself what to do when possible rather than
>asking the user to specify himself whether lowmem is required.
>
>This is making life easier for distribution to support multiple platforms
>with Xen without having to modify the command line.

Thanks. I'll follow you suggestion and do some test. Then send out a
new patch.

Thanks,
Peng.

>
>Regards,
>
>-- 
>Julien Grall

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

 


Rackspace

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