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: Tue, 23 Jul 2013 18:20:10 +0000 [thread overview]
Message-ID: <1374603610.15592.30@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070E049A@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Tue Jul 23 11:50:35 2013)
On 07/23/2013 11:50:35 AM, Bhushan Bharat-R65777 wrote:
>
>
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Tuesday, July 23, 2013 10:15 PM
> > To: Bhushan Bharat-R65777
> > Cc: Wood Scott-B07421; Alexander Graf; kvm-ppc@vger.kernel.org;
> > kvm@vger.kernel.org
> > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only
> for kernel
> > managed pages
> >
> > On 07/22/2013 10:39:16 PM, Bhushan Bharat-R65777 wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Wood Scott-B07421
> > > > Sent: Tuesday, July 23, 2013 12:18 AM
> > > > To: Bhushan Bharat-R65777
> > > > Cc: Wood Scott-B07421; Alexander Graf; kvm-ppc@vger.kernel.org;
> > > > kvm@vger.kernel.org
> > > > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency
> only
> > > for kernel
> > > > managed pages
> > > >
> > > > 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).
> > >
> > > Here is cut paste of your one response:
> > > "The architecture makes it illegal to mix cacheable and
> > > cache-inhibited mappings to the same physical page. Mixing W or M
> > > bits is generally bad as well. I've seen it cause machine checks,
> > > error interrupts, etc.
> > > -- not just corrupting the page in question."
> > >
> > > So I added not mixing W & M. But at that time I missed to
> understood
> > > why mixing M & I for same physical address can be issue :).
> >
> > "W or M", not "W and M". I meant that each one, separately, is in
> a similar
> > situation as the I bit.
> >
> > None of this is about invalid combinations of attributes on a
> single TLB entry
> > (though there are architectural restrictions there as well).
>
> Ok, I misread again :(. The second part of comment was (looks like
> you missed so copy pasted below)
>
> "
> When we say all RAM (page_is_ram() is true) will be having "M" bit,
> then same RAM physical address will not have "M" mixed with any
> other, right?
>
> Similarly, For IO (which is not RAM), we will set "I+G", so "I" will
> not be mixed with "M". Is not that?
> "
I didn't miss it; it just seemed moot given the earlier confusion. But
yes, for now we will set all RAM to M, and all I/O to I+G. Eventually
that will change if/when we do vfio for QMan portals or other devices
that require cacheable I/O.
-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: Tue, 23 Jul 2013 13:20:10 -0500 [thread overview]
Message-ID: <1374603610.15592.30@snotra> (raw)
In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D070E049A@039-SN2MPN1-013.039d.mgd.msft.net> (from R65777@freescale.com on Tue Jul 23 11:50:35 2013)
On 07/23/2013 11:50:35 AM, Bhushan Bharat-R65777 wrote:
>
>
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Tuesday, July 23, 2013 10:15 PM
> > To: Bhushan Bharat-R65777
> > Cc: Wood Scott-B07421; Alexander Graf; kvm-ppc@vger.kernel.org;
> > kvm@vger.kernel.org
> > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency only
> for kernel
> > managed pages
> >
> > On 07/22/2013 10:39:16 PM, Bhushan Bharat-R65777 wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Wood Scott-B07421
> > > > Sent: Tuesday, July 23, 2013 12:18 AM
> > > > To: Bhushan Bharat-R65777
> > > > Cc: Wood Scott-B07421; Alexander Graf; kvm-ppc@vger.kernel.org;
> > > > kvm@vger.kernel.org
> > > > Subject: Re: [PATCH 2/2 v2] kvm: powerpc: set cache coherency
> only
> > > for kernel
> > > > managed pages
> > > >
> > > > 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).
> > >
> > > Here is cut paste of your one response:
> > > "The architecture makes it illegal to mix cacheable and
> > > cache-inhibited mappings to the same physical page. Mixing W or M
> > > bits is generally bad as well. I've seen it cause machine checks,
> > > error interrupts, etc.
> > > -- not just corrupting the page in question."
> > >
> > > So I added not mixing W & M. But at that time I missed to
> understood
> > > why mixing M & I for same physical address can be issue :).
> >
> > "W or M", not "W and M". I meant that each one, separately, is in
> a similar
> > situation as the I bit.
> >
> > None of this is about invalid combinations of attributes on a
> single TLB entry
> > (though there are architectural restrictions there as well).
>
> Ok, I misread again :(. The second part of comment was (looks like
> you missed so copy pasted below)
>
> "
> When we say all RAM (page_is_ram() is true) will be having "M" bit,
> then same RAM physical address will not have "M" mixed with any
> other, right?
>
> Similarly, For IO (which is not RAM), we will set "I+G", so "I" will
> not be mixed with "M". Is not that?
> "
I didn't miss it; it just seemed moot given the earlier confusion. But
yes, for now we will set all RAM to M, and all I/O to I+G. Eventually
that will change if/when we do vfio for QMan portals or other devices
that require cacheable I/O.
-Scott
next prev parent reply other threads:[~2013-07-23 18:20 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
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 [this message]
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=1374603610.15592.30@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.