From: Julien Grall <julien.grall@citrix.com>
To: Chen Baozi <cbz@baozis.org>, xen-devel@lists.xenproject.org
Cc: julien.grall@citrix.com, Chen Baozi <baozich@gmail.com>,
ian.campbell@citrix.com
Subject: Re: [RFC 0/4] Support more than 8 vcpus on arm64 with GICv3
Date: Thu, 14 May 2015 18:48:46 +0100 [thread overview]
Message-ID: <5554DFFE.6090909@citrix.com> (raw)
In-Reply-To: <1431612863-3762-1-git-send-email-cbz@baozis.org>
Hi Chen,
On 14/05/15 15:14, Chen Baozi wrote:
> From: Chen Baozi <baozich@gmail.com>
>
> Currently the number of vcpus on arm64 with GICv3 is limited up to 8 due
> to the fixed size of redistributor mmio region. In this patch series, I
> postpone setting the size of GICR0 to the point when max_vcpus of a domU is
> determined to support more than 8 redistributors.
I don't think postponing is necessary. We have plenty of space in the
RAM guest layout to reserve a region for 128 redistributors.
If the guest is trying to access to wrong re-distributor, it will
receive a data abort. It's already the case today when the guest is
using less than 8 vCPUs.
Although you would need to reshuffle a bit the layout. With your
solution, if the guest is using 128 vCPUs it will overlap the
grant-table region, magic page (xenstore, xenconsole,...) and the
beginning of the RAM. whoops ;).
> However, I am not quite sure that decoupling the rdist base and size
> setting of domU to different functions is appropriate, though I am now
> able to create both a dom0 and a domU of 8+ vcpus with these patches.
> So any comments/suggestions are welcomed.
I'm afraid to say that your suggestion is only enough to support up to
16 vCPUs per guest.
The vGIC is only using the affinity 0 of the MPIDR (AFF1, AFF2 and AFF3
are ignored).
Affinity 0 represents the CPU in a cluster and AFF{1,2,3} the cluster
ID. Each cluster can support up to 16 CPUs.
You will also need to change the way to domain is creating the MIPDR,
currently it considers that AFF0 == vcpu_id (see vcpu_initialise).
Lastly, you need more care for the GICv2 case. We don't want a user to
create a guest with more than 8 vCPUs.
Even though supporting more than 16 vCPUs would nice, it would require
more work. I would be fine if you decide to only bump to 16 vCPUs for now.
Regards,
--
Julien Grall
next prev parent reply other threads:[~2015-05-14 17:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-14 14:14 [RFC 0/4] Support more than 8 vcpus on arm64 with GICv3 Chen Baozi
2015-05-14 14:14 ` [RFC 1/4] xen/arm64: Map the redistributor region by max_vcpus of domU danamically Chen Baozi
2015-05-14 17:51 ` Julien Grall
2015-05-14 14:14 ` [RFC 2/4] xen/arm64: increase MAX_VIRT_CPUS to 128 on arm64 Chen Baozi
2015-05-14 17:55 ` Julien Grall
2015-05-14 14:14 ` [RFC 3/4] tools/libxl: Make DT node of GICv3 according to max_vcpus Chen Baozi
2015-05-14 14:14 ` [RFC 4/4] xen/arm: Remove unnecessary GUEST_GICV3_GICR0_SIZE macro Chen Baozi
2015-05-14 18:03 ` Julien Grall
2015-05-14 17:48 ` Julien Grall [this message]
2015-05-14 18:04 ` [RFC 0/4] Support more than 8 vcpus on arm64 with GICv3 Julien Grall
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=5554DFFE.6090909@citrix.com \
--to=julien.grall@citrix.com \
--cc=baozich@gmail.com \
--cc=cbz@baozis.org \
--cc=ian.campbell@citrix.com \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.