All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: Bhushan Bharat-R65777 <R65777@freescale.com>
Cc: Wood Scott-B07421 <B07421@freescale.com>,
	Alexander Graf <agraf@suse.de>,
	"kvm-ppc@vger.kernel.org" <kvm-ppc@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only for kernel managed pages
Date: Mon, 22 Jul 2013 18:47:43 +0000	[thread overview]
Message-ID: <1374518863.15592.10@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070DA34F@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Sun Jul 21 23:39:45 2013)

On 07/21/2013 11:39:45 PM, Bhushan Bharat-R65777 wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, July 18, 2013 11:09 PM
> > To: Alexander Graf
> > Cc: Bhushan Bharat-R65777; kvm-ppc@vger.kernel.org;  
> kvm@vger.kernel.org; Bhushan
> > Bharat-R65777
> > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only  
> for kernel
> > managed pages
> >
> > On 07/18/2013 12:32:18 PM, Alexander Graf wrote:
> > >
> > > On 18.07.2013, at 19:17, Scott Wood wrote:
> > >
> > > > On 07/18/2013 08:19:03 AM, Bharat Bhushan wrote:
> > > > Likewise, we want to make sure this matches the host entry.
> > > Unfortunately, this is a bit of a mess already.  64-bit booke  
> appears
> > > to always set MAS2_M for TLB0 mappings.  The initial KERNELBASE
> > > mapping on boot uses M_IF_SMP, and the settlbcam() that (IIRC)
> > > replaces it uses _PAGE_COHERENT.  32-bit always uses  
> _PAGE_COHERENT,
> > > except that initial KERNELBASE mapping.  _PAGE_COHERENT appears  
> to be
> > > set based on CONFIG_SMP || CONFIG_PPC_STD_MMU (the latter config
> > > clears _PAGE_COHERENT in the non-CPU_FTR_NEED_COHERENT case).
> > > >
> > > > As for what we actually want to happen, there are cases when we
> > > want M to be set for non-SMP.  One such case is AMP, where CPUs  
> may be
> > > sharing memory even if the Linux instance only runs on one CPU  
> (this
> > > is not hypothetical, BTW).  It's also possible that we encounter a
> > > hardware bug that requires MAS2_M, similar to what some of our
> > > non-booke chips require.
> > >
> > > How about we always set M then for RAM?
> >
> > M is like I in that bad things happen if you mix them.
> 
> I am trying to list the invalid mixing of WIMG:
> 
>  1) I & M
>  2) W & I
>  3) W & M (Scott mentioned that he observed issues when  mixing these  
> two)
>  4) is there any other?

That's not what I was talking about (and I don't think I mentioned W at  
all, though it is also potentially problematic).  I'm talking about  
mixing I with not-I (on two different virtual addresses pointing to the  
same physical), M with not-M, etc.

> >  So we really want to
> > match exactly what the rest of the kernel is doing.
> 
> How the rest of kernel is doing is a bit complex. IIUC, if we forget  
> about the boot state then this is how kernel set WIMG bits:
>  1) For Memory always set M if CONFIG_SMP set.
> 	- So KVM can do same. "M" will not be mixed with "W" and "I". G  
> and E are guest control.

I don't think this is accurate for 64-bit.  And what about the AMP case?

-Scott

WARNING: multiple messages have this Message-ID (diff)
From: Scott Wood <scottwood@freescale.com>
To: Bhushan Bharat-R65777 <R65777@freescale.com>
Cc: Wood Scott-B07421 <B07421@freescale.com>,
	Alexander Graf <agraf@suse.de>,
	"kvm-ppc@vger.kernel.org" <kvm-ppc@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only for kernel managed pages
Date: Mon, 22 Jul 2013 13:47:43 -0500	[thread overview]
Message-ID: <1374518863.15592.10@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070DA34F@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Sun Jul 21 23:39:45 2013)

On 07/21/2013 11:39:45 PM, Bhushan Bharat-R65777 wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, July 18, 2013 11:09 PM
> > To: Alexander Graf
> > Cc: Bhushan Bharat-R65777; kvm-ppc@vger.kernel.org;  
> kvm@vger.kernel.org; Bhushan
> > Bharat-R65777
> > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only  
> for kernel
> > managed pages
> >
> > On 07/18/2013 12:32:18 PM, Alexander Graf wrote:
> > >
> > > On 18.07.2013, at 19:17, Scott Wood wrote:
> > >
> > > > On 07/18/2013 08:19:03 AM, Bharat Bhushan wrote:
> > > > Likewise, we want to make sure this matches the host entry.
> > > Unfortunately, this is a bit of a mess already.  64-bit booke  
> appears
> > > to always set MAS2_M for TLB0 mappings.  The initial KERNELBASE
> > > mapping on boot uses M_IF_SMP, and the settlbcam() that (IIRC)
> > > replaces it uses _PAGE_COHERENT.  32-bit always uses  
> _PAGE_COHERENT,
> > > except that initial KERNELBASE mapping.  _PAGE_COHERENT appears  
> to be
> > > set based on CONFIG_SMP || CONFIG_PPC_STD_MMU (the latter config
> > > clears _PAGE_COHERENT in the non-CPU_FTR_NEED_COHERENT case).
> > > >
> > > > As for what we actually want to happen, there are cases when we
> > > want M to be set for non-SMP.  One such case is AMP, where CPUs  
> may be
> > > sharing memory even if the Linux instance only runs on one CPU  
> (this
> > > is not hypothetical, BTW).  It's also possible that we encounter a
> > > hardware bug that requires MAS2_M, similar to what some of our
> > > non-booke chips require.
> > >
> > > How about we always set M then for RAM?
> >
> > M is like I in that bad things happen if you mix them.
> 
> I am trying to list the invalid mixing of WIMG:
> 
>  1) I & M
>  2) W & I
>  3) W & M (Scott mentioned that he observed issues when  mixing these  
> two)
>  4) is there any other?

That's not what I was talking about (and I don't think I mentioned W at  
all, though it is also potentially problematic).  I'm talking about  
mixing I with not-I (on two different virtual addresses pointing to the  
same physical), M with not-M, etc.

> >  So we really want to
> > match exactly what the rest of the kernel is doing.
> 
> How the rest of kernel is doing is a bit complex. IIUC, if we forget  
> about the boot state then this is how kernel set WIMG bits:
>  1) For Memory always set M if CONFIG_SMP set.
> 	- So KVM can do same. "M" will not be mixed with "W" and "I". G  
> and E are guest control.

I don't think this is accurate for 64-bit.  And what about the AMP case?

-Scott

  reply	other threads:[~2013-07-22 18:47 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18 13:19 [PATCH 1/2 v2] kvm: powerpc: Do not ignore "E" attribute in mas2 Bharat Bhushan
2013-07-18 13:31 ` Bharat Bhushan
2013-07-18 13:19 ` [PATCH 2/2 v2] kvm: powerpc: set cache coherency only for kernel managed pages Bharat Bhushan
2013-07-18 13:31   ` Bharat Bhushan
2013-07-18 14:53   ` Alexander Graf
2013-07-18 14:53     ` Alexander Graf
2013-07-18 15:15     ` Bhushan Bharat-R65777
2013-07-18 15:19       ` Alexander Graf
2013-07-18 15:19         ` Alexander Graf
2013-07-18 17:17   ` Scott Wood
2013-07-18 17:17     ` Scott Wood
2013-07-18 17:32     ` Alexander Graf
2013-07-18 17:32       ` Alexander Graf
2013-07-18 17:39       ` Scott Wood
2013-07-18 17:39         ` Scott Wood
2013-07-22  4:39         ` Bhushan Bharat-R65777
2013-07-22 18:47           ` Scott Wood [this message]
2013-07-22 18:47             ` Scott Wood
2013-07-23  3:39             ` Bhushan Bharat-R65777
2013-07-23 16:44               ` Scott Wood
2013-07-23 16:44                 ` Scott Wood
2013-07-23 16:50                 ` Bhushan Bharat-R65777
2013-07-23 18:20                   ` Scott Wood
2013-07-23 18:20                     ` Scott Wood
2013-07-24  1:06                     ` Bhushan Bharat-R65777
2013-07-23 11:13     ` Bhushan Bharat-R65777
2013-07-23 18:26       ` Scott Wood
2013-07-23 18:26         ` Scott Wood
2013-07-18 14:48 ` [PATCH 1/2 v2] kvm: powerpc: Do not ignore "E" attribute in mas2 Alexander Graf
2013-07-18 14:48   ` Alexander Graf
2013-07-18 15:12   ` Bhushan Bharat-R65777
2013-07-18 15:19     ` Alexander Graf
2013-07-18 15:19       ` Alexander Graf
2013-07-18 15:20       ` Bhushan Bharat-R65777
2013-07-18 16:15     ` Scott Wood
2013-07-18 16:15       ` Scott Wood

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=1374518863.15592.10@snotra \
    --to=scottwood@freescale.com \
    --cc=B07421@freescale.com \
    --cc=R65777@freescale.com \
    --cc=agraf@suse.de \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.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.