All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Toshi Kani <toshi.kani@hp.com>
Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com,
	akpm@linux-foundation.org, arnd@arndb.de, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, jgross@suse.com,
	stefan.bader@canonical.com, luto@amacapital.net, hmh@hmh.eng.br,
	yigal@plexistor.com
Subject: Re: [PATCH v2 1/6] x86, mm, pat: Set WT to PA4 slot of PAT MSR
Date: Fri, 12 Sep 2014 15:33:45 -0400	[thread overview]
Message-ID: <20140912193345.GH15656@laptop.dumpdata.com> (raw)
In-Reply-To: <1410367910-6026-2-git-send-email-toshi.kani@hp.com>

> -	/* Set PWT to Write-Combining. All other bits stay the same */
> -	/*
> -	 * PTE encoding used in Linux:
> -	 *      PAT
> -	 *      |PCD
> -	 *      ||PWT
> -	 *      |||
> -	 *      000 WB		_PAGE_CACHE_WB
> -	 *      001 WC		_PAGE_CACHE_WC
> -	 *      010 UC-		_PAGE_CACHE_UC_MINUS
> -	 *      011 UC		_PAGE_CACHE_UC


I think having this nice picture would be beneficial to folks
who want to understand it. And now you can of course expand it with
the slot 7 usage.

> -	 * PAT bit unused
> -	 */
> -	pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> -	      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, UC);
> +	if ((c->x86_vendor == X86_VENDOR_INTEL) &&
> +	    (((c->x86 == 0x6) && (c->x86_model <= 0xd)) ||
> +	     ((c->x86 == 0xf) && (c->x86_model <= 0x6)))) {
> +		/*
> +		 * Intel Pentium 2, 3, M, and 4 are affected by PAT errata,
> +		 * which makes the upper four entries unusable.  We do not
> +		 * use the upper four entries for all the affected processor
> +		 * families for safe.
> +		 *
> +		 * PAT 0:WB, 1:WC, 2:UC-, 3:UC, 4-7:unusable
> +		 *
> +		 * NOTE: When WT or WP is used, it is redirected to UC- per
> +		 * the default setup in  __cachemode2pte_tbl[].
> +		 */
> +		pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> +		      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, UC);
> +	} else {
> +		/*
> +		 * WT is set to slot 7, which minimizes the risk of using

You say slot 7 here, but the title of the patch says slot 4?

> +		 * the PAT bit as slot 3 is UC and is currently unused.
> +		 * Slot 4 should remain as reserved.
> +		 *
> +		 * PAT 0:WB, 1:WC, 2:UC-, 3:UC, 4-6:reserved, 7:WT
> +		 */
> +		pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> +		      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, WT);
> +	}
>  
>  	/* Boot CPU check */
>  	if (!boot_pat_state)

--
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>

WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Toshi Kani <toshi.kani@hp.com>
Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com,
	akpm@linux-foundation.org, arnd@arndb.de, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, jgross@suse.com,
	stefan.bader@canonical.com, luto@amacapital.net, hmh@hmh.eng.br,
	yigal@plexistor.com
Subject: Re: [PATCH v2 1/6] x86, mm, pat: Set WT to PA4 slot of PAT MSR
Date: Fri, 12 Sep 2014 15:33:45 -0400	[thread overview]
Message-ID: <20140912193345.GH15656@laptop.dumpdata.com> (raw)
In-Reply-To: <1410367910-6026-2-git-send-email-toshi.kani@hp.com>

> -	/* Set PWT to Write-Combining. All other bits stay the same */
> -	/*
> -	 * PTE encoding used in Linux:
> -	 *      PAT
> -	 *      |PCD
> -	 *      ||PWT
> -	 *      |||
> -	 *      000 WB		_PAGE_CACHE_WB
> -	 *      001 WC		_PAGE_CACHE_WC
> -	 *      010 UC-		_PAGE_CACHE_UC_MINUS
> -	 *      011 UC		_PAGE_CACHE_UC


I think having this nice picture would be beneficial to folks
who want to understand it. And now you can of course expand it with
the slot 7 usage.

> -	 * PAT bit unused
> -	 */
> -	pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> -	      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, UC);
> +	if ((c->x86_vendor == X86_VENDOR_INTEL) &&
> +	    (((c->x86 == 0x6) && (c->x86_model <= 0xd)) ||
> +	     ((c->x86 == 0xf) && (c->x86_model <= 0x6)))) {
> +		/*
> +		 * Intel Pentium 2, 3, M, and 4 are affected by PAT errata,
> +		 * which makes the upper four entries unusable.  We do not
> +		 * use the upper four entries for all the affected processor
> +		 * families for safe.
> +		 *
> +		 * PAT 0:WB, 1:WC, 2:UC-, 3:UC, 4-7:unusable
> +		 *
> +		 * NOTE: When WT or WP is used, it is redirected to UC- per
> +		 * the default setup in  __cachemode2pte_tbl[].
> +		 */
> +		pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> +		      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, UC);
> +	} else {
> +		/*
> +		 * WT is set to slot 7, which minimizes the risk of using

You say slot 7 here, but the title of the patch says slot 4?

> +		 * the PAT bit as slot 3 is UC and is currently unused.
> +		 * Slot 4 should remain as reserved.
> +		 *
> +		 * PAT 0:WB, 1:WC, 2:UC-, 3:UC, 4-6:reserved, 7:WT
> +		 */
> +		pat = PAT(0, WB) | PAT(1, WC) | PAT(2, UC_MINUS) | PAT(3, UC) |
> +		      PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, WT);
> +	}
>  
>  	/* Boot CPU check */
>  	if (!boot_pat_state)

  reply	other threads:[~2014-09-12 19:34 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 16:51 [PATCH v2 0/6] Support Write-Through mapping on x86 Toshi Kani
2014-09-10 16:51 ` Toshi Kani
2014-09-10 16:51 ` [PATCH v2 1/6] x86, mm, pat: Set WT to PA4 slot of PAT MSR Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-12 19:33   ` Konrad Rzeszutek Wilk [this message]
2014-09-12 19:33     ` Konrad Rzeszutek Wilk
2014-09-12 20:45     ` Toshi Kani
2014-09-12 20:45       ` Toshi Kani
2014-09-10 16:51 ` [PATCH v2 2/6] x86, mm, pat: Change reserve_memtype() to handle WT Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-10 18:26   ` Andy Lutomirski
2014-09-10 18:26     ` Andy Lutomirski
2014-09-10 19:14     ` H. Peter Anvin
2014-09-10 19:14       ` H. Peter Anvin
2014-09-10 19:30     ` Toshi Kani
2014-09-10 19:30       ` Toshi Kani
2014-09-10 20:14       ` H. Peter Anvin
2014-09-10 20:14         ` H. Peter Anvin
2014-09-10 20:30         ` Toshi Kani
2014-09-10 20:30           ` Toshi Kani
2014-09-10 21:06           ` Andy Lutomirski
2014-09-10 21:06             ` Andy Lutomirski
2014-09-10 21:11             ` Toshi Kani
2014-09-10 21:11               ` Toshi Kani
2014-09-10 21:27               ` Andy Lutomirski
2014-09-10 21:27                 ` Andy Lutomirski
2014-09-10 21:25                 ` Toshi Kani
2014-09-10 21:25                   ` Toshi Kani
2014-09-10 21:39                 ` H. Peter Anvin
2014-09-10 21:39                   ` H. Peter Anvin
2014-09-10 21:47                   ` Toshi Kani
2014-09-10 21:47                     ` Toshi Kani
2014-09-10 22:00                     ` H. Peter Anvin
2014-09-10 22:00                       ` H. Peter Anvin
2014-09-10 23:24                       ` Toshi Kani
2014-09-10 23:24                         ` Toshi Kani
2014-09-10 21:39                 ` H. Peter Anvin
2014-09-10 21:39                   ` H. Peter Anvin
2014-09-10 20:31         ` Andy Lutomirski
2014-09-10 20:31           ` Andy Lutomirski
2014-09-12 19:41   ` Konrad Rzeszutek Wilk
2014-09-12 19:41     ` Konrad Rzeszutek Wilk
2014-09-10 16:51 ` [PATCH v2 3/6] x86, mm, asm-gen: Add ioremap_wt() for WT Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-10 18:29   ` Andy Lutomirski
2014-09-10 18:29     ` Andy Lutomirski
2014-09-10 19:40     ` Toshi Kani
2014-09-10 19:40       ` Toshi Kani
2014-09-10 20:08       ` Andy Lutomirski
2014-09-10 20:08         ` Andy Lutomirski
2014-09-12 19:42   ` Konrad Rzeszutek Wilk
2014-09-12 19:42     ` Konrad Rzeszutek Wilk
2014-09-10 16:51 ` [PATCH v2 4/6] x86, mm: Add set_memory_wt() " Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-12 19:47   ` Konrad Rzeszutek Wilk
2014-09-12 19:47     ` Konrad Rzeszutek Wilk
2014-09-10 16:51 ` [PATCH v2 5/6] x86, mm, pat: Add pgprot_writethrough() " Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-12 19:47   ` Konrad Rzeszutek Wilk
2014-09-12 19:47     ` Konrad Rzeszutek Wilk
2014-09-10 16:51 ` [PATCH v2 6/6] x86, pat: Update documentation for WT changes Toshi Kani
2014-09-10 16:51   ` Toshi Kani
2014-09-10 18:30   ` Andy Lutomirski
2014-09-10 18:30     ` Andy Lutomirski
2014-09-10 20:12     ` Toshi Kani
2014-09-10 20:12       ` Toshi Kani
2014-09-10 20:29       ` Andy Lutomirski
2014-09-10 20:29         ` Andy Lutomirski
2014-09-10 21:34         ` Toshi Kani
2014-09-10 21:34           ` Toshi Kani
2014-09-15 21:19           ` Toshi Kani
2014-09-15 21:19             ` Toshi Kani
2014-09-16  1:22             ` Andy Lutomirski
2014-09-16  1:22               ` Andy Lutomirski
2014-09-16 16:52               ` Toshi Kani
2014-09-16 16:52                 ` Toshi Kani
2014-09-16 21:45                 ` Yigal Korman
2014-09-16 21:45                   ` Yigal Korman
2014-09-16 22:13                   ` Toshi Kani
2014-09-16 22:13                     ` 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=20140912193345.GH15656@laptop.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=hmh@hmh.eng.br \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=stefan.bader@canonical.com \
    --cc=tglx@linutronix.de \
    --cc=toshi.kani@hp.com \
    --cc=yigal@plexistor.com \
    /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.