linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Toshi Kani <toshi.kani@hp.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>,
	akpm@linux-foundation.org, hpa@zytor.com, tglx@linutronix.de,
	mingo@redhat.com, linux-mm@kvack.org, x86@kernel.org,
	linux-kernel@vger.kernel.org, dave.hansen@intel.com,
	Elliott@hp.com, pebolle@tiscali.nl, mcgrof@suse.com
Subject: Re: [PATCH v5 6/6] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping
Date: Wed, 20 May 2015 09:02:23 -0600	[thread overview]
Message-ID: <1432134143.908.12.camel@misato.fc.hp.com> (raw)
In-Reply-To: <20150520150114.GA19161@gmail.com>

On Wed, 2015-05-20 at 17:01 +0200, Ingo Molnar wrote:
> * Toshi Kani <toshi.kani@hp.com> wrote:
> 
> > On Wed, 2015-05-20 at 13:55 +0200, Ingo Molnar wrote:
> > > * Borislav Petkov <bp@alien8.de> wrote:
> > > 
> > > > --- a/arch/x86/mm/pgtable.c
> > > > +++ b/arch/x86/mm/pgtable.c
> > > > @@ -566,19 +566,28 @@ void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
> > > >  /**
> > > >   * pud_set_huge - setup kernel PUD mapping
> > > >   *
> > > > - * MTRR can override PAT memory types with 4KiB granularity.  Therefore,
> > > > - * this function does not set up a huge page when the range is covered
> > > > - * by a non-WB type of MTRR.  MTRR_TYPE_INVALID indicates that MTRR are
> > > > - * disabled.
> > > > + * MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
> > > > + * function sets up a huge page only if any of the following conditions are met:
> > > > + *
> > > > + * - MTRRs are disabled, or
> > > > + *
> > > > + * - MTRRs are enabled and the range is completely covered by a single MTRR, or
> > > > + *
> > > > + * - MTRRs are enabled and the range is not completely covered by a single MTRR
> > > > + *   but the memory type of the range is WB, even if covered by multiple MTRRs.
> > > > + *
> > > > + * Callers should try to decrease page size (1GB -> 2MB -> 4K) if the bigger
> > > > + * page mapping attempt fails.
> > > 
> > > This comment should explain why it's ok in the WB case.
> > > 
> > > Also, the phrase 'the memory type of the range' is ambiguous: it might 
> > > mean the partial MTRR's, or the memory type specified via PAT by the 
> > > huge-pmd entry.
> > 
> > Agreed.  How about this sentence?
> > 
> >  - MTRRs are enabled and the corresponding MTRR memory type is WB, which
> > has no effect to the requested PAT memory type.
> 
> s/effect to/effect on
> 
> sounds good otherwise!

Great!

Boris, can you update the patch, or do you want me to send you a patch
for this update?

> Btw., if WB MTRR entries can never have an effect on Linux PAT 
> specified attributes, why do we allow them to be created? I don't 
> think we ever call into real mode for this to matter?

MTRRs have the default memory type, which is used when the given range
is not covered by any MTRR entries.  There are two types of BIOS setup:

1) Default UC
 - BIOS sets the default type to UC, and covers all WB accessible ranges
with MTRR entries of WB.

2) Default WB
 - BIOS sets the default type to WB, and covers non-WB accessible range
with MTRR entries of other memory types, such as UC.

In both cases, WB type can be returned.  In case of 1), the requested
range may overlap with multiple MTRR entries of WB type, which is still
safe.

Thanks,
-Toshi


Thanks,
-Toshi



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2015-05-20 15:21 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-15 18:23 [PATCH v5 0/6] mtrr, mm, x86: Enhance MTRR checks for huge I/O mapping Toshi Kani
2015-05-15 18:23 ` [PATCH v5 1/6] mm, x86: Simplify conditions of HAVE_ARCH_HUGE_VMAP Toshi Kani
2015-05-17  8:30   ` Borislav Petkov
     [not found]   ` <1432628901-18044-2-git-send-email-bp@alien8.de>
2015-05-27 14:17     ` [tip:x86/mm] x86/mm/kconfig: Simplify conditions for HAVE_ARCH_HUGE_VMAP tip-bot for Toshi Kani
2015-05-15 18:23 ` [PATCH v5 2/6] mtrr, x86: Fix MTRR lookup to handle inclusive entry Toshi Kani
     [not found]   ` <1432628901-18044-3-git-send-email-bp@alien8.de>
2015-05-27 14:18     ` [tip:x86/mm] x86/mm/mtrr: Fix MTRR lookup to handle an " tip-bot for Toshi Kani
2015-05-15 18:23 ` [PATCH v5 3/6] mtrr, x86: Fix MTRR state checks in mtrr_type_lookup() Toshi Kani
     [not found]   ` <1432628901-18044-4-git-send-email-bp@alien8.de>
2015-05-27 14:18     ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani
2015-05-15 18:23 ` [PATCH v5 4/6] mtrr, x86: Define MTRR_TYPE_INVALID for mtrr_type_lookup() Toshi Kani
     [not found]   ` <1432628901-18044-5-git-send-email-bp@alien8.de>
2015-05-27 14:18     ` [tip:x86/mm] x86/mm/mtrr: Use symbolic define as a retval for disabled MTRRs tip-bot for Toshi Kani
2015-05-15 18:23 ` [PATCH v5 5/6] mtrr, x86: Clean up mtrr_type_lookup() Toshi Kani
     [not found]   ` <1432628901-18044-6-git-send-email-bp@alien8.de>
2015-05-27 14:19     ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani
2015-07-31 13:18       ` Peter Zijlstra
2015-07-31 14:44         ` Borislav Petkov
2015-07-31 15:08           ` Peter Zijlstra
2015-07-31 15:27             ` Borislav Petkov
2015-08-01 14:28               ` Luis R. Rodriguez
2015-08-01 16:33                 ` Borislav Petkov
2015-08-01 16:39                   ` Linus Torvalds
2015-08-01 16:49                     ` Borislav Petkov
2015-08-01 17:03                       ` Linus Torvalds
2015-05-15 18:23 ` [PATCH v5 6/6] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping Toshi Kani
2015-05-18 13:33   ` Borislav Petkov
2015-05-18 17:22     ` Toshi Kani
2015-05-18 19:01       ` Borislav Petkov
2015-05-18 19:31         ` Toshi Kani
2015-05-18 20:01           ` Borislav Petkov
2015-05-18 20:21             ` Toshi Kani
2015-05-18 20:51               ` Borislav Petkov
2015-05-18 21:53                 ` Toshi Kani
2015-05-19 11:44                   ` Borislav Petkov
2015-05-19 13:23                     ` Borislav Petkov
2015-05-19 13:47                       ` Toshi Kani
2015-05-20 11:55                       ` Ingo Molnar
2015-05-20 14:34                         ` Toshi Kani
2015-05-20 15:01                           ` Ingo Molnar
2015-05-20 15:02                             ` Toshi Kani [this message]
2015-05-20 16:04                               ` Borislav Petkov
2015-05-20 15:46                                 ` Toshi Kani
     [not found]   ` <1432628901-18044-8-git-send-email-bp@alien8.de>
2015-05-27 14:19     ` [tip:x86/mm] x86/mm/mtrr: Enhance MTRR checks in kernel mapping helpers tip-bot for Toshi Kani

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=1432134143.908.12.camel@misato.fc.hp.com \
    --to=toshi.kani@hp.com \
    --cc=Elliott@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mcgrof@suse.com \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=pebolle@tiscali.nl \
    --cc=tglx@linutronix.de \
    --cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).