On Tue, 8 Jun 2021 at 18:53, Jan Kiszka <[email protected]> wrote:
>
> On 08.06.21 11:20, Dongjiu Geng wrote:
> > Hi,
> > From the jailhouse design, the Private Per-CPU data should be not
> > accessed by other CPUs except the current CPU. But from the code[1]
> > and my test, it is not. For example, the CPU1 can access the CPU0's
> > private data, because hv_paging_structs already map it, and the
> > per-cpu page table will link the hv_paging_structs. is this a bug? I
> > think the Private Per-CPU data should be not accessed by other CPUs
> > except the self CPU.
> >
> > [1]: err = paging_create(&hv_paging_structs,
> > paging_hvirt2phys(&hypervisor_header),
> > system_config->hypervisor_memory.size,
> > (unsigned long)&hypervisor_header,
> > PAGE_DEFAULT_FLAGS,
> > PAGING_NON_COHERENT | PAGING_HUGE);
> >
>
> You are referring to
> https://github.com/siemens/jailhouse/blob/6d9c51d0bd819689c00f6a3c38d3099f6eb9c657/hypervisor/paging.c#L678:
> Right, the initial mapping means everything is visible for all CPUs. But
> then comes
> https://github.com/siemens/jailhouse/blob/6d9c51d0bd819689c00f6a3c38d3099f6eb9c657/hypervisor/setup.c#L100
> which setups up an alternative mapping (installed by arch_cpu_init()).
> That does not contain the private data structs of the other CPUs. You
> should be able to confirm that AFTER initialization, e.g. on a first VM
> exit after setup.
Thanks very much for the answer, could you paste the code where it
removes the private data structs of the other CPUs? I do not find that
logic. After enabling jailhouse hypervisor and returning to the first
VM0. the CPU0 still can access other CPU's private data structs, as
shown in[1].
[1]:
@@ -261,8 +262,10 @@ int entry(unsigned int cpu_id, struct per_cpu *cpu_data)
return error;
}
- if (master)
+ if (master) {
+ printk("10:
----------------------------------------------------------%lx----\n",
per_cpu(10)->id_aa64mmfr0);
printk("Activating hypervisor\n");
+ }
>
> Jan
>
> --
> Siemens AG, T RDA IOT
> Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/CABSBigRR6qC2PU5hUE_HpLzBrn4Qn1%3D4j%3DV396ywRm4_u56A6A%40mail.gmail.com.