[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 4/4] xen/arm: update the docs about heterogeneous computing

On 16/02/2018 21:15, Stefano Stabellini wrote:
On Fri, 16 Feb 2018, Julien Grall wrote:
On 16/02/2018 20:50, Stefano Stabellini wrote:
On Fri, 16 Feb 2018, Julien Grall wrote:
Hi Stefano,

On 15/02/18 23:17, Stefano Stabellini wrote:
Update the documentation of the hmp-unsafe option to explain how to use
it safely, together with the right cpu affinity setting, on big.LITTLE

Also update the warning message to point users to the docs.

Signed-off-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: jbeulich@xxxxxxxx
CC: konrad.wilk@xxxxxxxxxx
CC: tim@xxxxxxx
CC: wei.liu2@xxxxxxxxxx
CC: andrew.cooper3@xxxxxxxxxx
CC: George.Dunlap@xxxxxxxxxxxxx
CC: ian.jackson@xxxxxxxxxxxxx

    docs/misc/xen-command-line.markdown | 10 +++++++++-
    xen/arch/arm/smpboot.c              |  9 +++++----
    2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.markdown
index 2184cb9..a1ebeea 100644
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -1007,7 +1007,15 @@ Control Xens use of the APEI Hardware Error
Table, should one be found.
      Say yes at your own risk if you want to enable heterogenous
    (such as big.LITTLE). This may result to an unstable and insecure
-platform. When the option is disabled (default), CPUs that are not
+platform, unless you manually specify the cpu affinity of all domains
+that all vcpus are scheduled on the same class of pcpus (big or LITTLE
+but not both). vcpu migration between big cores and LITTLE cores is not
+supported. Thus, if the first 4 pcpus are big and the last 4 are
+all domains need to have either cpus = "0-3" or cpus = "4-7" in their
+config. Moreover, dom0_vcpus_pin needs to be passed on the Xen command

In your example here you suggest to have all the vCPUs of a guest to
either on
big or LITTLE cores. How about giving an example where the guest can have
LITTLE vCPUs and one big vCPU?

I would rather discourage it at the moment, given that it requires more
complex cpu affinity settings, or vcpu pinning. Also, I am afraid that
without matching corresponding topology information on the guest device
tree, guests might not work as expected in such a scenario.

What do you think?

You already know my view on this. I would rather strongly discourage anyone
pinning all vCPUs of a domain to big cores. We should avoid to provide
shortcuts to use that could have potentially damageable impact on their
platform without telling them.

Do you have a link to a doc somewhere that provides more details about
this? We could add a link to it here to inform users. It would be

This is quite well described in https://xenbits.xen.org/docs/unstable/man/xl.cfg.5.html#CPU-Allocation see "cpus".

I see. What about:

    See docs/misc/xen-command-line.markdown:hmp-unsafe


    See hmp-unsafe under

I believe that people looking at big.LITTLE (and really want it) are smart
enough to look at the docs or the code themselves. Given how fragile is your
solution, I would rather avoid to help people doing bad thing.

People might know very well the hardware, and have very detailed
information about big.LITTLE and their platform, but might not know that
much about Xen.

We also might have student who wants to try Xen on their platform and have no clue how it works. So we want to provide safe information here and avoid to induce pinning on big cores is always safe.

I think with the tools we have, it is not very difficult provide a quick tuto how to do big.LITTLE in Xen. Obviously this will not be as easy as the solution suggested by Dario in its design document.

The most important bits is libxl provide an extensive way to set CPUs affinity. OS such as Linux will be able to deal with big.LITTLE even without DT thought scheduling might not be that good... I have no idea how Android detects big.LITTLE and will leave that to person who knows more.

I would like to introduce a tie between the warning message and the
documentation provided. The tie doesn't have to be around hmp-unsafe:
the intention wasn't really to provide a shortcut to do more damage, but
rather to inform about the situation. In fact, I didn't mean to
recommend the usage of hmp-unsafe.

In that case we should make clear hmp-unsafe is not recommended. When I read the suggested paragraph for the command line option, it feels that it is safe to use it if you pin your domain on big cores only.

Maybe we could say:

   See big.LITTLE under 

or create docs/mics/arm/big.LITTLE ?

A doc would make more sense over a long paragraph in the xen-command-line.

But if we decide to no recommend the usage of hmp-unsafe (as you suggested above), then we should avoid to tease the user with that. Anyone caring enough about big.LITTLE could find easily a documentation to enable it on Xen.


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.