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

Re: [Xen-devel] [PATCH RFC 09/15] xen/arm: refactor construct_dom0



On Fri, 15 Jun 2018, Julien Grall wrote:
> Hi Stefano,
> 
> On 06/15/2018 12:35 AM, Stefano Stabellini wrote:
> > On Thu, 14 Jun 2018, Julien Grall wrote:
> > > On 13/06/18 23:15, Stefano Stabellini wrote:
> > > > -
> > > > -    printk("*** LOADING DOMAIN 0 ***\n");
> > > > -    if ( dom0_mem <= 0 )
> > > > -    {
> > > > -        warning_add("PLEASE SPECIFY dom0_mem PARAMETER -
> > > > USING 512M FOR
> > > > NOW\n");
> > > > -        dom0_mem = MB(512);
> > > > -    }
> > > > -
> > > > -
> > > > -    iommu_hwdom_init(d);
> > > > -
> > > > -    d->max_pages = ~0U;
> > > > -
> > > > -    kinfo.unassigned_mem = dom0_mem;
> > > > -    kinfo.d = d;
> > > > -
> > > > -    rc = kernel_probe(&kinfo);
> > > > -    if ( rc < 0 )
> > > > -        return rc;
> > > > -
> > > >    #ifdef CONFIG_ARM_64
> > > >        /* if aarch32 mode is not supported at EL1 do not
> > > > allow 32-bit domain
> > > > */
> > > > -    if ( !(cpu_has_el1_32) && kinfo.type == DOMAIN_32BIT
> > > > )
> > > > +    if ( !(cpu_has_el1_32) && kinfo->type ==
> > > > DOMAIN_32BIT )
> > > >        {
> > > >            printk("Platform does not support 32-bit
> > > > domain\n");
> > > >            return -EINVAL;
> > > >        }
> > > > -    d->arch.type = kinfo.type;
> > > 
> > > Any reason to move this out?
> > 
> > Yeah, initially I left it there but it didn't work. It needs
> > to be set
> > before calling allocate_memory() for domUs otherwise memory
> > allocations
> > fail.
> 
> Oh because allocate_domain(d) rely on is_domain_32bit, right? I
> don't much like the duplication here just because of
> prepare_dtb_domU. I am wondering if we could do:
> 
> if ( !is_hardware_domain(d) )
>   prepare_dtb_domU(...);
> else if ( acpi_disabled )
>   prepare_acpi_hwdom(...);
> else
>   prepare_dt_hwdom(....);

The few remaining things in construct_dom0 and construct_domU are
different enough that I don't think there is much gain in trying to
merge them.


> > > > +    if ( acpi_disabled )
> > > > +        rc = prepare_dtb(d, &kinfo);
> > > > +    else
> > > > +        rc = prepare_acpi(d, &kinfo);
> > > > +
> > > > +    if ( rc < 0 )
> > > > +        return rc;
> > > > +
> > > > +    discard_initial_modules();
> > > 
> > > You say "no functional change" in this patch. But this is
> > > one. The module are
> > > now discard much earlier. This imply that memory baking the
> > > Image/Initrd will
> > > be free to be re-used at any time.
> > > 
> > > I don't think this is what we want. Unless you can promise
> > > no memory is
> > > allocated in __construct_domain().
> > 
> > discard_initial_modules() will be moved later by patch #14,
> > but I think
> > it makes sense to call discard_initial_modules() after
> > __construct_domain() here.
> 
> Yeah, I noticed you moved the discard_initial_modules() later
> on. But I would like to have the series bisectable if possible
> :).

Yep, it will be done.

_______________________________________________
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®.