xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: van.freenix@gmail.com, sstabellini@kernel.org, jbeulich@suse.com,
	andrew.cooper3@citrix.com, jgross@suse.com,
	dario.faggioli@citrix.com
Cc: Peng Fan <peng.fan@nxp.com>, xen-devel@lists.xen.org
Subject: Re: [RFC 0/5] xen/arm: support big.little SoC
Date: Mon, 19 Sep 2016 10:09:06 +0200	[thread overview]
Message-ID: <10152e13-bccb-0794-44e4-556845875e33@arm.com> (raw)
In-Reply-To: <1474250936-27962-1-git-send-email-peng.fan@nxp.com>

Hello Peng,

On 19/09/2016 04:08, van.freenix@gmail.com wrote:
> From: Peng Fan <peng.fan@nxp.com>
>
> This patchset is to support XEN run on big.little SoC.
> The idea of the patch is from
> "https://lists.xenproject.org/archives/html/xen-devel/2016-05/msg00465.html"
>
> There are some changes to cpupool and add x86 stub functions to avoid build
> break. Sending The RFC patchset out is to request for comments to see whether
> this implementation is acceptable or not. Patchset have been tested based on
> xen-4.8 unstable on NXP i.MX8.
>
> I use Big/Little CPU and cpupool to explain the idea.
> A pool contains Big CPUs is called Big Pool.
> A pool contains Little CPUs is called Little Pool.
> If a pool does not contains any physical cpus, Little CPUs or Big CPUs
> can be added to the cpupool. But the cpupool can not contain both Little
> and Big CPUs. The CPUs in a cpupool must have the same cpu type(midr value for ARM).
> CPUs can not be added to the cpupool which contains cpus that have different cpu type.
> Little CPUs can not be moved to Big Pool if there are Big CPUs in Big Pool,
> and versa. Domain in Big Pool can not be migrated to Little Pool, and versa.
> When XEN tries to bringup all the CPUs, only add CPUs with the same cpu type(same midr value)
> into cpupool0.

As mentioned in the mail you pointed above, this series is not enough to 
make big.LITTLE working on then. Xen is always using the boot CPU to 
detect the list of features. With big.LITTLE features may not be the same.

And I would prefer to see Xen supporting big.LITTLE correctly before 
beginning to think to expose big.LITTLE to the userspace (via cpupool) 
automatically.

See for instance v->arch.actlr = READ_SYSREG32(ACTLR_EL1).

>
> Thinking an SoC with 4 A53(cpu[0-3]) + 2 A72(cpu[4-5]), cpu0 is the first one
> that boots up. When XEN tries to bringup secondary CPUs, add cpu[0-3] to
> cpupool0 and leave cpu[4-5] not in any cpupool. Then when Dom0 boots up,
> `xl cpupool-list -c` will show cpu[0-3] in Pool-0.
>
> Then use the following script to create a new cpupool and add cpu[4-5] to
> the cpupool.
>  #xl cpupool-create name=\"Pool-A72\" sched=\"credit2\"
>  #xl cpupool-cpu-add Pool-A72 4
>  #xl cpupool-cpu-add Pool-A72 5
>  #xl create -d /root/xen/domu-test pool=\"Pool-A72\"

I am a bit confused with these runes. It means that only the first kind 
of CPUs have pool assigned. Why don't you directly create all the pools 
at boot time?

Also, in which pool a domain will be created if none is specified?

> Now `xl cpupool-list -c` shows:
> Name            CPU list
> Pool-0          0,1,2,3
> Pool-A72        4,5
>
> `xl cpupool-list` shows:
> Name               CPUs   Sched     Active   Domain count
> Pool-0               4    credit       y          1
> Pool-A72             2   credit2       y          1
>
> `xl cpupool-cpu-remove Pool-A72 4`, then `xl cpupool-cpu-add Pool-0 4`
> not success, because Pool-0 contains A53 CPUs, but CPU4 is an A72 CPU.
>
> `xl cpupool-migrate DomU Pool-0` will also fail, because DomU is created
> in Pool-A72 with A72 vcpu, while Pool-0 have A53 physical cpus.
>
> Patch 1/5:
> use "cpumask_weight(cpupool0->cpu_valid);" to replace "num_online_cpus()",
> because num_online_cpus() counts all the online CPUs, but now we only
> need Big or Little CPUs.

So if I understand correctly, if the boot CPU is a little CPU, DOM0 will 
always be able to only use little ones. Is that right?

Regards,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  parent reply	other threads:[~2016-09-19  8:09 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-19  2:08 [RFC 0/5] xen/arm: support big.little SoC van.freenix
2016-09-19  2:08 ` [RFC 1/5] xen/arm: domain_build: setting opt_dom0_max_vcpus according to cpupool0 info van.freenix
2016-09-19  2:08 ` [RFC 2/5] xen: cpupool: introduce cpupool_arch_info van.freenix
2016-09-19  2:08 ` [RFC 3/5] xen: cpupool: add arch cpupool hook van.freenix
2016-09-19  2:08 ` [RFC 4/5] xen/arm: move vpidr from arch_domain to arch_vcpu van.freenix
2016-09-19  2:08 ` [RFC 5/5] xen/arm: cpupool: implement arch_domain_cpupool_compatible van.freenix
2016-09-19  8:09 ` Julien Grall [this message]
2016-09-19  8:36   ` [RFC 0/5] xen/arm: support big.little SoC Peng Fan
2016-09-19  8:53     ` Julien Grall
2016-09-19  9:38       ` Peng Fan
2016-09-19  9:59         ` Julien Grall
2016-09-19 13:15           ` Peng Fan
2016-09-19 20:56             ` Stefano Stabellini
2016-09-19  9:45       ` George Dunlap
2016-09-19 10:06         ` Julien Grall
2016-09-19 10:23           ` Juergen Gross
2016-09-19 17:18             ` Dario Faggioli
2016-09-19 21:03               ` Stefano Stabellini
2016-09-19 22:55                 ` Dario Faggioli
2016-09-20  0:01                   ` Stefano Stabellini
2016-09-20  0:54                     ` Dario Faggioli
2016-09-20 10:03                       ` Peng Fan
2016-09-20 10:27                         ` George Dunlap
2016-09-20 15:34                           ` Julien Grall
2016-09-20 17:24                             ` Dario Faggioli
2016-09-20 19:09                             ` Stefano Stabellini
2016-09-20 19:41                               ` Julien Grall
2016-09-20 20:17                                 ` Stefano Stabellini
2016-09-21  8:38                                   ` Peng Fan
2016-09-21  9:22                                     ` George Dunlap
2016-09-21 12:35                                       ` Peng Fan
2016-09-21 15:00                                       ` Dario Faggioli
2016-09-21 10:15                                     ` Julien Grall
2016-09-21 12:28                                       ` Peng Fan
2016-09-21 15:06                                         ` Dario Faggioli
2016-09-22  9:45                                       ` Peng Fan
2016-09-22 11:21                                         ` Julien Grall
2016-09-23  2:38                                           ` Peng Fan
2016-09-21 10:09                                   ` Julien Grall
2016-09-21 10:22                                     ` George Dunlap
2016-09-21 13:06                                       ` Julien Grall
2016-09-21 15:45                                         ` Dario Faggioli
2016-09-21 19:28                                           ` Julien Grall
2016-09-22  6:16                                             ` Peng Fan
2016-09-22  8:43                                             ` Dario Faggioli
2016-09-22 11:24                                               ` Julien Grall
2016-09-22 16:31                                                 ` Dario Faggioli
2016-09-23 13:56                                                   ` Julien Grall
2016-09-21 18:13                                         ` Stefano Stabellini
2016-09-21 19:11                                           ` Julien Grall
2016-09-21 19:21                                             ` Julien Grall
2016-09-21 23:45                                             ` Stefano Stabellini
2016-09-22  6:49                                             ` Peng Fan
2016-09-22  8:50                                               ` Dario Faggioli
2016-09-22  9:27                                                 ` Peng Fan
2016-09-22  9:51                                                   ` George Dunlap
2016-09-22 10:09                                                     ` Peng Fan
2016-09-22 10:39                                                       ` Dario Faggioli
2016-09-22 10:13                                                     ` Juergen Gross
2016-09-22  9:52                                                   ` Dario Faggioli
2016-09-22 11:29                                                   ` Julien Grall
2016-09-22 17:31                                                     ` Stefano Stabellini
2016-09-22 18:54                                                       ` Julien Grall
2016-09-23  2:14                                                         ` Peng Fan
2016-09-23  9:24                                                           ` Julien Grall
2016-09-23 10:05                                                             ` Peng Fan
2016-09-23 10:15                                                               ` Julien Grall
2016-09-23 13:36                                                                 ` Dario Faggioli
2016-09-24  1:57                                                                   ` Stefano Stabellini
2016-09-23 13:52                                                               ` Dario Faggioli
2016-09-24  1:35                                                         ` Stefano Stabellini
2016-09-23  2:03                                                     ` Peng Fan
2016-09-22 10:05                                                 ` Peng Fan
2016-09-22 16:26                                                   ` Dario Faggioli
2016-09-22 17:33                                                     ` Stefano Stabellini
2016-09-21 12:38                                     ` Peng Fan
2016-09-21  9:45                         ` Dario Faggioli
2016-09-20 10:18                     ` George Dunlap
2016-09-19 20:55             ` Stefano Stabellini
2016-09-19 10:33           ` George Dunlap
2016-09-19 13:33             ` Peng Fan
2016-09-20  0:11               ` Dario Faggioli
2016-09-20  6:18                 ` Peng Fan
2016-09-19 16:43             ` Dario Faggioli
2016-09-19 13:08       ` Peng Fan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10152e13-bccb-0794-44e4-556845875e33@arm.com \
    --to=julien.grall@arm.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=dario.faggioli@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=peng.fan@nxp.com \
    --cc=sstabellini@kernel.org \
    --cc=van.freenix@gmail.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).