All of lore.kernel.org
 help / color / mirror / Atom feed
From: Toshi Kani <toshi.kani@hp.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: "Jan Beulich" <JBeulich@suse.com>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jej B" <James.Bottomley@hansenpartnership.com>,
	"X86 ML" <x86@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Julia Lawall" <julia.lawall@lip6.fr>,
	xen-devel@lists.xenproject.org,
	"Dave Airlie" <airlied@redhat.com>,
	"Ville Syrjälä" <syrjala@sci.fi>,
	"Juergen Gross" <JGross@suse.com>, "Borislav Petkov" <bp@suse.de>,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	linux-fbdev <linux-fbdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-media@vger.kernel.org,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [Xen-devel] RIP MTRR - status update for upcoming v4.2
Date: Fri, 07 Aug 2015 23:19:25 +0000	[thread overview]
Message-ID: <1438989565.3109.179.camel@hp.com> (raw)
In-Reply-To: <1438988915.3109.175.camel@hp.com>

On Fri, 2015-08-07 at 17:08 -0600, Toshi Kani wrote:
> On Fri, 2015-08-07 at 15:23 -0700, Luis R. Rodriguez wrote:
> > On Fri, Aug 7, 2015 at 2:56 PM, Toshi Kani <toshi.kani@hp.com> wrote:
> > > On Fri, 2015-08-07 at 13:25 -0700, Luis R. Rodriguez wrote:
> > > > On Thu, Aug 6, 2015 at 3:58 PM, Toshi Kani <toshi.kani@hp.com> 
> > > > wrote:
> > > > > On Thu, 2015-08-06 at 12:53 -0700, Luis R. Rodriguez wrote:
> > > > > > On Fri, Jun 12, 2015 at 9:58 AM, Toshi Kani <toshi.kani@hp.com> 
> > > > > > wrote:
>  :
> > > > > 
> > > > > No, there is no OS support necessary to use MTRR.  After firmware 
> > > > > sets it up, CPUs continue to use it without any OS support.  I 
> > > > > think the Linux change you are referring is to obsolete legacy
> > > > > interfaces that modify the MTRR setup.  I agree that Linux should 
> > > > > not modify MTRR.
> > > > 
> > > > Its a bit more than that though. Since you agree that the OS can 
> > > > live without MTRR code I was hoping to then see if we can fold out 
> > > > PAT Linux code from under the MTRR dependency on Linux and make PAT 
> > > > a first class citizen, maybe at least for x86-64. Right now you can
> > > > only get PAT support on Linux if you have MTRR code, but I'd like to 
> > > > see if instead we can rip MTRR code out completely under its own 
> > > > Kconfig and let it start rotting away.
> > > > 
> > > > Code-wise the only issue I saw was that PAT code also relies on
> > > > mtrr_type_lookup(), see pat_x_mtrr_type(), but other than this I 
> > > > found no other obvious issues.
> > > 
> > > We can rip of the MTTR code that modifies the MTRR setup, but not
> > > mtrr_type_lookup().  This function provides necessary checks per 
> > > documented in commit 7f0431e3dc89 as follows.
> > > 
> > >     1) reserve_memtype() tracks an effective memory type in case
> > >        a request type is WB (ex. /dev/mem blindly uses WB). Missing
> > >        to track with its effective type causes a subsequent request
> > >        to map the same range with the effective type to fail.
> > > 
> > >     2) pud_set_huge() and pmd_set_huge() check if a requested range
> > >        has any overlap with MTRRs. Missing to detect an overlap may
> > >        cause a performance penalty or undefined behavior.
> > > 
> > > mtrr_type_lookup() is still admittedly awkward, but I do not think we 
> > > have an immediate issue in PAT code calling it.  I do not think it 
> > > makes 
> > > PAT code a second class citizen.
> > 
> > OK since we know that if MTRR set up code ends up disabled and would
> > return MTRR_TYPE_INVALID what if we just static inline this for the
> > no-MTRR Kconfig build option immediately, and only then have the full
> > blown implementation for the case where MTRR Kconfig option is
> > enabled?
> 
> Yes, the MTRR code could be disabled by Kconfig with such inline stubs as
> long as the kernel is built specifically for a particular platform with 
> MTRR disabled, such as Xen guest kernel.

Noticed that we do have CONFIG_MTRR and mtrr_type_lookup() inline stub
returns MTRR_INVALID.

-Toshi


WARNING: multiple messages have this Message-ID (diff)
From: Toshi Kani <toshi.kani@hp.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: "Jan Beulich" <JBeulich@suse.com>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jej B" <James.Bottomley@hansenpartnership.com>,
	"X86 ML" <x86@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Julia Lawall" <julia.lawall@lip6.fr>,
	xen-devel@lists.xenproject.org,
	"Dave Airlie" <airlied@redhat.com>,
	"Ville Syrjälä" <syrjala@sci.fi>,
	"Juergen Gross" <JGross@suse.com>, "Borislav Petkov" <bp@suse.de>,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	linux-fbdev <linux-fbdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-media@vger.kernel.org,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [Xen-devel] RIP MTRR - status update for upcoming v4.2
Date: Fri, 07 Aug 2015 17:19:25 -0600	[thread overview]
Message-ID: <1438989565.3109.179.camel@hp.com> (raw)
In-Reply-To: <1438988915.3109.175.camel@hp.com>

On Fri, 2015-08-07 at 17:08 -0600, Toshi Kani wrote:
> On Fri, 2015-08-07 at 15:23 -0700, Luis R. Rodriguez wrote:
> > On Fri, Aug 7, 2015 at 2:56 PM, Toshi Kani <toshi.kani@hp.com> wrote:
> > > On Fri, 2015-08-07 at 13:25 -0700, Luis R. Rodriguez wrote:
> > > > On Thu, Aug 6, 2015 at 3:58 PM, Toshi Kani <toshi.kani@hp.com> 
> > > > wrote:
> > > > > On Thu, 2015-08-06 at 12:53 -0700, Luis R. Rodriguez wrote:
> > > > > > On Fri, Jun 12, 2015 at 9:58 AM, Toshi Kani <toshi.kani@hp.com> 
> > > > > > wrote:
>  :
> > > > > 
> > > > > No, there is no OS support necessary to use MTRR.  After firmware 
> > > > > sets it up, CPUs continue to use it without any OS support.  I 
> > > > > think the Linux change you are referring is to obsolete legacy
> > > > > interfaces that modify the MTRR setup.  I agree that Linux should 
> > > > > not modify MTRR.
> > > > 
> > > > Its a bit more than that though. Since you agree that the OS can 
> > > > live without MTRR code I was hoping to then see if we can fold out 
> > > > PAT Linux code from under the MTRR dependency on Linux and make PAT 
> > > > a first class citizen, maybe at least for x86-64. Right now you can
> > > > only get PAT support on Linux if you have MTRR code, but I'd like to 
> > > > see if instead we can rip MTRR code out completely under its own 
> > > > Kconfig and let it start rotting away.
> > > > 
> > > > Code-wise the only issue I saw was that PAT code also relies on
> > > > mtrr_type_lookup(), see pat_x_mtrr_type(), but other than this I 
> > > > found no other obvious issues.
> > > 
> > > We can rip of the MTTR code that modifies the MTRR setup, but not
> > > mtrr_type_lookup().  This function provides necessary checks per 
> > > documented in commit 7f0431e3dc89 as follows.
> > > 
> > >     1) reserve_memtype() tracks an effective memory type in case
> > >        a request type is WB (ex. /dev/mem blindly uses WB). Missing
> > >        to track with its effective type causes a subsequent request
> > >        to map the same range with the effective type to fail.
> > > 
> > >     2) pud_set_huge() and pmd_set_huge() check if a requested range
> > >        has any overlap with MTRRs. Missing to detect an overlap may
> > >        cause a performance penalty or undefined behavior.
> > > 
> > > mtrr_type_lookup() is still admittedly awkward, but I do not think we 
> > > have an immediate issue in PAT code calling it.  I do not think it 
> > > makes 
> > > PAT code a second class citizen.
> > 
> > OK since we know that if MTRR set up code ends up disabled and would
> > return MTRR_TYPE_INVALID what if we just static inline this for the
> > no-MTRR Kconfig build option immediately, and only then have the full
> > blown implementation for the case where MTRR Kconfig option is
> > enabled?
> 
> Yes, the MTRR code could be disabled by Kconfig with such inline stubs as
> long as the kernel is built specifically for a particular platform with 
> MTRR disabled, such as Xen guest kernel.

Noticed that we do have CONFIG_MTRR and mtrr_type_lookup() inline stub
returns MTRR_INVALID.

-Toshi


  parent reply	other threads:[~2015-08-07 23:19 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-11 20:36 RIP MTRR - status update for upcoming v4.2 Luis R. Rodriguez
2015-06-11 20:36 ` Luis R. Rodriguez
2015-06-11 23:23 ` Toshi Kani
2015-06-11 23:23 ` Toshi Kani
2015-06-11 23:23   ` Toshi Kani
2015-06-12  0:52   ` Luis R. Rodriguez
2015-06-12  0:52     ` Luis R. Rodriguez
2015-06-12 16:42     ` Toshi Kani
2015-06-12 16:42       ` Toshi Kani
2015-06-12 16:42     ` Toshi Kani
2015-06-12  0:52   ` Luis R. Rodriguez
2015-06-12  7:59   ` Jan Beulich
2015-06-12  7:59   ` [Xen-devel] " Jan Beulich
2015-06-12  7:59     ` Jan Beulich
2015-06-12 16:58     ` Toshi Kani
2015-06-12 16:58       ` Toshi Kani
2015-08-06 19:53       ` Luis R. Rodriguez
2015-08-06 19:53         ` Luis R. Rodriguez
2015-08-06 19:55         ` Luis R. Rodriguez
2015-08-06 19:55           ` Luis R. Rodriguez
2015-08-06 19:55         ` Luis R. Rodriguez
2015-08-06 22:58         ` [Xen-devel] " Toshi Kani
2015-08-06 22:58           ` Toshi Kani
2015-08-07 20:25           ` Luis R. Rodriguez
2015-08-07 20:25           ` [Xen-devel] " Luis R. Rodriguez
2015-08-07 20:25             ` Luis R. Rodriguez
2015-08-07 21:56             ` Toshi Kani
2015-08-07 21:56               ` Toshi Kani
2015-08-07 22:23               ` Luis R. Rodriguez
2015-08-07 22:23               ` [Xen-devel] " Luis R. Rodriguez
2015-08-07 22:23                 ` Luis R. Rodriguez
2015-08-07 23:08                 ` Toshi Kani
2015-08-07 23:08                   ` Toshi Kani
2015-08-07 23:19                   ` Toshi Kani
2015-08-07 23:19                   ` Toshi Kani [this message]
2015-08-07 23:19                     ` [Xen-devel] " Toshi Kani
2015-08-07 23:26                   ` Luis R. Rodriguez
2015-08-07 23:26                   ` [Xen-devel] " Luis R. Rodriguez
2015-08-07 23:26                     ` Luis R. Rodriguez
2015-08-07 23:48                     ` Toshi Kani
2015-08-07 23:48                       ` Toshi Kani
2015-08-07 23:48                     ` Toshi Kani
2015-08-07 23:08                 ` Toshi Kani
2015-08-07 21:56             ` Toshi Kani
2015-08-06 22:58         ` Toshi Kani
2015-08-06 19:53       ` Luis R. Rodriguez
2015-06-12 16:58     ` Toshi Kani
2015-06-12 23:15     ` Andy Lutomirski
2015-06-12 23:15     ` [Xen-devel] " Andy Lutomirski
2015-06-12 23:15       ` Andy Lutomirski
2015-06-12 23:29       ` James Bottomley
2015-06-12 23:29         ` James Bottomley
2015-06-12 23:29       ` James Bottomley
2015-06-13  6:37       ` [Xen-devel] " Ingo Molnar
2015-06-13  6:37         ` Ingo Molnar
2015-06-13  6:37       ` Ingo Molnar
2015-06-15  6:20       ` Jan Beulich
2015-06-15  6:20       ` [Xen-devel] " Jan Beulich
2015-06-15  6:20         ` Jan Beulich

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=1438989565.3109.179.camel@hp.com \
    --to=toshi.kani@hp.com \
    --cc=JBeulich@suse.com \
    --cc=JGross@suse.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=airlied@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bhelgaas@google.com \
    --cc=bp@suse.de \
    --cc=julia.lawall@lip6.fr \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mcgrof@do-not-panic.com \
    --cc=syrjala@sci.fi \
    --cc=tomi.valkeinen@ti.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=x86@kernel.org \
    --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.