|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH v1 10/18] x86: introduce the domain builder
Hi Daniel,
> -----Original Message-----
> Subject: [PATCH v1 10/18] x86: introduce the domain builder
>
> This commit introduces the domain builder configuration FDT parser along
> with the domain builder core for domain creation. To enable domain builder
> to be a cross architecture internal API, a new arch domain creation call
is
> introduced for use by the domain builder.
> diff --git a/xen/common/domain-builder/core.c
> +void __init builder_init(struct boot_info *info) {
> + struct boot_domain *d = NULL;
> +
> + info->builder = &builder;
> +
> + if ( IS_ENABLED(CONFIG_BUILDER_FDT) )
> + {
> + }
> +
> + /*
> + * No FDT config support or an FDT wasn't present, do an initial
> + * domain construction
> + */
> + printk("Domain Builder: falling back to initial domain build\n");
> + info->builder->nr_doms = 1;
> + d = &info->builder->domains[0];
> +
> + d->mode = opt_dom0_pvh ? 0 : BUILD_MODE_PARAVIRTUALIZED;
> +
> + d->kernel = &info->mods[0];
> + d->kernel->kind = BOOTMOD_KERNEL;
> +
> + d->permissions = BUILD_PERMISSION_CONTROL |
> BUILD_PERMISSION_HARDWARE;
> + d->functions = BUILD_FUNCTION_CONSOLE |
> BUILD_FUNCTION_XENSTORE |
> + BUILD_FUNCTION_INITIAL_DOM;
> +
> + d->kernel->arch->headroom = bzimage_headroom(bootstrap_map(d-
> >kernel),
> + d->kernel->size);
> + bootstrap_map(NULL);
> +
> + if ( d->kernel->string.len )
> + d->kernel->string.kind = BOOTSTR_CMDLINE; }
Forgive me if I'm incorrect, but I believe there is an issue with this
fallback logic for the case where no FDT was provided.
If dom0_mem is not supplied to the xen cmd line, then d->meminfo is never
initialized. (See dom0_compute_nr_pages/dom0_build.c:335)
This was giving me trouble because bd->meminfo.mem_max.nr_pages was left at
0, effectivity clamping dom0 to 0 pages of ram.
I'm not sure what the best solution is but one (easy) possibility is just
initializing meminfo to the dom0 defaults near the end of this function:
d->meminfo.mem_size = dom0_size;
d->meminfo.mem_min = dom0_min_size;
d->meminfo.mem_max = dom0_max_size;
Thanks,
Jackson
Attachment:
smime.p7s
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |