[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH] xen/vcpu: Sanitise VCPUOP_initialise call hierachy
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Julien Grall <julien.grall.oss@xxxxxxxxx>
- Date: Fri, 15 Nov 2019 18:24:45 +0300
- Cc: Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Julien Grall <julien.grall@xxxxxxx>, Jan Beulich <JBeulich@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, nd <nd@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Delivery-date: Fri, 15 Nov 2019 15:25:01 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 31/10/2019 21:25, Julien Grall wrote:
> Hi,
>
> On 31/10/2019 19:28, Andrew Cooper wrote:
>> This code is especially tangled. VCPUOP_initialise calls into
>> arch_initialise_vcpu() which calls back into default_initialise_vcpu() which
>> is common code.
>>
>> This path is actually dead code on ARM, because VCPUOP_initialise is filtered
>> out by do_arm_vcpu_op().
>>
>> The only valid way to start a secondary CPU on ARM is via the PSCI interface.
>> The same could in principle be said about INIT-SIPI-SIPI for x86 HVM, if HVM
>> guests hadn't already interited a paravirt way of starting CPUs.
>>
>> Either way, it is quite likely that no future architectures implemented in Xen
>> are going to want to use a PV interface, as some standardised (v)CPU bringup
>> mechanism will already exist.
> I am not sure I agree here. Looking at Linux RISCv code (see [1] and
> [2]), it looks like the kernel has to deal with selecting one "lucky"
> CPU/hart to deal with the boot and park all the others.
>
> So it looks like to me there are nothing at the moment on RISCv to do
> (v)CPU bring-up. We might be able to use PSCI (although this is an ARM
> specific way), but would rather wait and see what RISCv folks come up
> with before deciding PV is never going to be used.
Nothing here prohibits other architectures from using a PV interface if
they wish.
Well, your commit message and the code movement implies that nobody will ever use it.
However, your examples prove my point. There is an already-agreed way
to start RISCv CPUs which is not a PV interface, and therefore is very
unlikely to adopted to run differently under Xen.
I would not call that a way to start CPUs because AFAICT all CPUs have to be brought up together and you can't offline them. This is fairly restrictive for a guest so I don't think reusing it would sustainable long term.
FWIW, this is exactly what Arm used to have before PSCI.
Cheers,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|