|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 04/23] xen/riscv: Implement construct_domain()
On 17.06.2026 13:17, Oleksii Kurochko wrote:
> Implement construct_domain() function for RISC-V, which performs initial setup
> for the domain's first vCPU, loads the kernel, initrd, and device tree,
> and sets up guest CPU registers for boot.
>
> It also creates additional vCPUs up to max_vcpus and assigns the device tree
> address and boot cpuid in registers.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
> ---
> Changes in v3:
> - s/%d/%u for printing vCPU index in the failure message.
> - Drop dprintk() for successful vCPU creation.
My
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
was lost, however. One more remark:
> --- /dev/null
> +++ b/xen/arch/riscv/domain-build.c
> @@ -0,0 +1,50 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/fdt-domain-build.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +
> +#include <asm/current.h>
> +#include <asm/guest_access.h>
> +
> +int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
> +{
> + struct vcpu *v = d->vcpu[0];
> + struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
> +
> + BUG_ON(v->is_initialised);
> +
> + /*
> + * At the moment *_load() don't return value and will just panic()
> + * inside.
> + * TODO: it will be good to change that.
> + */
> + kernel_load(kinfo);
> + initrd_load(kinfo, copy_to_guest_phys);
> + dtb_load(kinfo, copy_to_guest_phys);
> +
> + regs->sepc = kinfo->entry;
> +
> + /* Guest boot cpuid = 0 */
> + regs->a0 = 0;
> + regs->a1 = kinfo->dtb_paddr;
> +
> + for ( unsigned int i = 1; i < d->max_vcpus; i++ )
> + {
> + const struct vcpu *tmp_v = vcpu_create(d, i);
> +
> + if ( !tmp_v )
> + {
> + printk("Failed to allocate %pd v%u\n", d, i);
If you dropped the blank before v%u, the output would match that of %pv
(improving the chances of people actually spotting that the exact same
thing is meant). Once again - can do the adjustment while committing,
provided you agree (and provided earlier patches gain the necessary
acks).
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |