All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <sstabellini@kernel.org>
To: Julien Grall <julien.grall@arm.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrii Anisov <Andrii_Anisov@epam.com>,
	Oleksandr_Tyshchenko@epam.com
Subject: Re: [Xen-devel] [PATCH MM-PART2 RESEND v2 14/19] xen/arm32: mm: Avoid cleaning the cache for secondary CPUs page-tables
Date: Mon, 10 Jun 2019 13:54:40 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.21.1906101352010.8691@sstabellini-ThinkPad-T480s> (raw)
In-Reply-To: <ec030ed9-c44b-c476-866e-6c9c47def506@arm.com>

On Mon, 10 Jun 2019, Julien Grall wrote:
> Hi Steano,
> 
> On 6/10/19 9:28 PM, Stefano Stabellini wrote:
> > On Wed, 5 Jun 2019, Julien Grall wrote:
> > > On 05/06/2019 00:11, Stefano Stabellini wrote:
> > > > On Tue, 14 May 2019, Julien Grall wrote:
> > > > > The page-table walker is configured to use the same shareability and
> > > > > cacheability as the access performed when updating the page-tables.
> > > > > This
> > > > > means cleaning the cache for secondary CPUs runtime page-tables is
> > > > > unnecessary.
> > > > 
> > > > All right. Is there an explicit configuration for the shareability and
> > > > cacheability used by the page-table walker or is it specified as such in
> > > > the Arm Arm?
> > > 
> > > See the configuration of TCR_EL2, I can mention it.
> >   That would be nice. I double-checked and it is as you wrote.
> 
> Sure. How about:
> 
> "The page-table walker is configured by TCR_EL2 to use shareability and
> cacheability as the access performed when updating the page-tables. [...]"

That's great thank you. With that, add my reviewed-by.


> > > > Also, isn't it possible that CPUs on a different cluster
> > > > (big.LITTLE) would have issues with this if the cache could be split
> > > > between the two clusters?
> > > 
> > > I don't understand this... Cache should be coherent when a CPU leaves EL3.
> > > But we already share some bits of the page tables between the processor
> > > (see
> > > create_xen_page_tables). So I don't see where there is a possible problem
> > > here.
> > 
> > If the cache is always coherent across the clusters and the
> > pagetable-walkers of different clusters, then this is fine.
> 
> Xen (and Linux) built on the assumption that all the CPUs (and page-table
> walker) are in the same shareable domain (i.e innershareable). If you have a
> platform where it is not the case, then Xen is going to be badly broken.
> 
> This is also inline with the expectatio  from the Arm Arm (B2-123 in DDI
> 0487D.a):
> 
> "The Inner Shareable domain is expected to be the set of PEs controlled by a
> single hypervisor or operating system."
> 
> Do you have a case where Xen needs to run on PEs in different domains?

No, thankfully I don't :-)

I was worried that some big.LITTLE SoCs might be built like that so. (I
don't have any big.LITTLE machines here to confirm/deny.) It is good
that we don't have to worry about it.

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

  reply	other threads:[~2019-06-10 20:54 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 12:24 [PATCH MM-PART2 RESEND v2 00/19] xen/arm: Clean-up & fixes in boot/mm code Julien Grall
2019-05-14 12:24 ` [Xen-devel] " Julien Grall
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 01/19] xen/const: Extend the existing macro BIT to take a suffix in parameter Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-14 12:37   ` Jan Beulich
2019-05-14 12:37     ` [Xen-devel] " Jan Beulich
2019-05-20 21:43   ` Stefano Stabellini
2019-05-20 21:43     ` [Xen-devel] " Stefano Stabellini
2019-05-21 10:01     ` Andrii Anisov
2019-05-21 10:01       ` [Xen-devel] " Andrii Anisov
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 02/19] xen/arm: Rename SCTLR_* defines and remove unused one Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 21:46   ` Stefano Stabellini
2019-05-20 21:46     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 03/19] xen/arm: processor: Use BIT(.., UL) instead of _AC(1, U) in SCTLR_ defines Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 21:48   ` Stefano Stabellini
2019-05-20 21:48     ` [Xen-devel] " Stefano Stabellini
2019-05-21 10:01   ` Andrii Anisov
2019-05-21 10:01     ` [Xen-devel] " Andrii Anisov
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 04/19] xen/arm: Rework HSCTLR_BASE Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 22:56   ` Stefano Stabellini
2019-05-20 22:56     ` [Xen-devel] " Stefano Stabellini
2019-05-21 10:09     ` Julien Grall
2019-05-21 10:09       ` [Xen-devel] " Julien Grall
2019-05-29 16:54       ` Julien Grall
2019-05-29 16:54         ` [Xen-devel] " Julien Grall
2019-06-03 23:12         ` Stefano Stabellini
2019-06-03 23:12           ` [Xen-devel] " Stefano Stabellini
2019-06-04 10:27           ` Julien Grall
2019-06-04 17:41             ` Stefano Stabellini
2019-05-30 16:17       ` Andrii Anisov
2019-05-30 16:17         ` [Xen-devel] " Andrii Anisov
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 05/19] xen/arm: Remove parameter cpuid from start_xen Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-21 10:01   ` Andrii Anisov
2019-05-21 10:01     ` [Xen-devel] " Andrii Anisov
2019-06-06 17:15     ` Julien Grall
2019-06-07 22:39   ` Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 06/19] xen/arm: Rework secondary_start prototype Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 22:56   ` Stefano Stabellini
2019-05-20 22:56     ` [Xen-devel] " Stefano Stabellini
2019-05-29 17:06     ` Julien Grall
2019-05-29 17:06       ` [Xen-devel] " Julien Grall
2019-05-30 16:18       ` Andrii Anisov
2019-05-30 16:18         ` [Xen-devel] " Andrii Anisov
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 07/19] xen/arm64: head: Remove unnecessary comment Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 22:56   ` Stefano Stabellini
2019-05-20 22:56     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 08/19] xen/arm64: head: Move earlyprintk messages in .rodata.str Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 22:56   ` Stefano Stabellini
2019-05-20 22:56     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 09/19] xen/arm64: head: Correctly report the HW CPU ID Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-20 22:56   ` Stefano Stabellini
2019-05-20 22:56     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 10/19] xen/arm32: " Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-03 22:45   ` Stefano Stabellini
2019-06-03 22:45     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 11/19] xen/arm32: head: Don't set MAIR0 and MAIR1 Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-03 22:47   ` Stefano Stabellini
2019-06-03 22:47     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 12/19] xen/arm32: head: Always zero r3 before update a page-table entry Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-21 10:03   ` Andrii Anisov
2019-05-21 10:03     ` [Xen-devel] " Andrii Anisov
2019-06-03 23:15   ` Stefano Stabellini
2019-06-03 23:15     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 13/19] xen/arm32: mm: Avoid to zero and clean cache for CPU0 domheap Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-03 23:20   ` Stefano Stabellini
2019-06-03 23:20     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 14/19] xen/arm32: mm: Avoid cleaning the cache for secondary CPUs page-tables Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-04 23:11   ` Stefano Stabellini
2019-06-05 10:19     ` Julien Grall
2019-06-10 10:15       ` Julien Grall
2019-06-10 20:28       ` Stefano Stabellini
2019-06-10 20:40         ` Julien Grall
2019-06-10 20:54           ` Stefano Stabellini [this message]
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 15/19] xen/arm: mm: Introduce DEFINE_PAGE_TABLE{, S} and use it Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-03 23:29   ` Stefano Stabellini
2019-06-03 23:29     ` [Xen-devel] " Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 16/19] xen/arm: mm: Protect Xen page-table update with a spinlock Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-05-21 10:04   ` Andrii Anisov
2019-05-21 10:04     ` [Xen-devel] " Andrii Anisov
2019-06-04 23:11   ` Stefano Stabellini
2019-06-05 10:36     ` Julien Grall
2019-06-08  0:17       ` Stefano Stabellini
2019-06-13 12:06         ` Julien Grall
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 17/19] xen/arm: mm: Initialize page-tables earlier Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-04 23:12   ` Stefano Stabellini
2019-06-06 17:32     ` Julien Grall
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 18/19] xen/arm: mm: Check start is always before end in {destroy, modify}_xen_mappings Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-04 23:12   ` Stefano Stabellini
2019-05-14 12:24 ` [PATCH MM-PART2 RESEND v2 19/19] xen/arm: Pair call to set_fixmap with call to clear_fixmap in copy_from_paddr Julien Grall
2019-05-14 12:24   ` [Xen-devel] " Julien Grall
2019-06-04 17:59   ` Stefano Stabellini
2019-06-04 20:18     ` Julien Grall
2019-06-04 23:12       ` Stefano Stabellini
2019-06-06 17:38         ` Julien Grall
2019-05-29 17:23 ` [PATCH MM-PART2 RESEND v2 00/19] xen/arm: Clean-up & fixes in boot/mm code Julien Grall
2019-05-29 17:23   ` [Xen-devel] " Julien Grall
2019-06-13 12:09 ` 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=alpine.DEB.2.21.1906101352010.8691@sstabellini-ThinkPad-T480s \
    --to=sstabellini@kernel.org \
    --cc=Andrii_Anisov@epam.com \
    --cc=Oleksandr_Tyshchenko@epam.com \
    --cc=julien.grall@arm.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.