[Xen-devel] [PATCH v6 1/4] arm: introduce psci_smp_ops
Stefano Stabellini
stefano.stabellini at eu.citrix.com
Fri Apr 19 13:06:01 EDT 2013
On Fri, 19 Apr 2013, Nicolas Pitre wrote:
> On Fri, 19 Apr 2013, Ian Campbell wrote:
>
> > On Fri, 2013-04-19 at 16:47 +0100, Nicolas Pitre wrote:
> > > No one should be probing registers without making sure it is safe to do
> > > so. Even on non virtualized hardware this can be a dangerous thing to
> > > do.
> >
> > Won't people writing per machine code consider, not unreasonably, that
> > having been called through a mdesc machine specific hook constitutes
> > enough "making sure" that they think it is safe to touch registers which
> > are specific to that machine?
>
> Remember that this hook was introduced to decide at run time between
> different possibilities for SMP ops on the _same_ machine configuration.
> That machine shouldn't do things which is not permitted on either
> possible alternatives already. So far the actual usage of that hook
> only looks in the DT to make a decision. But even if it were to touch
> the hardware, that means it has to be safe to do so on all the possible
> hardware variations this mdesc is associated to.
This last sentence is the key.
It is not guaranteed that being safe on "all the possible hardware
variations this mdesc is associated to" and being safe on Xen are the
same thing.
What if the same magic configuration register exists on all the possible
variations of the platform?
I understand that it is unlikely but I think it is a possibility.
If we don't take further precautions I'll be forced to regularly scan
the list for smp_init implementations and look for possible breakages,
pointing the unaware author of the patches to this conversation.
Honestly it is not my idea of fun.
> And if Xen wants to emulate one of those hardware alternatives, then it
> better be ready to emulate it properly, or manage for _another_ mdesc to
> be selected instead. That's why mach-virt was introduced.
I don't mean to argue pointlessly here, but I thought that it was clear
that Xen does not emulate any hardware interfaces at all.
Of course when a convenient virtualization aware hardware interface is
available (the vGIC for example) Xen is going to use it, but other than
that no emulation is going to be done.
> So in my opinion there is just no issue here.
Not now, and maybe not even in the near future.
But I feel that we are taking an error prone approach.
More information about the linux-arm-kernel
mailing list