[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140912193345.GH15656@laptop.dumpdata.com>
Date: Fri, 12 Sep 2014 15:33:45 -0400
From: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
To: Toshi Kani <toshi.kani@...com>
Cc: hpa@...or.com, tglx@...utronix.de, mingo@...hat.com,
akpm@...ux-foundation.org, arnd@...db.de, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, jgross@...e.com,
stefan.bader@...onical.com, luto@...capital.net, hmh@....eng.br,
yigal@...xistor.com
Subject: Re: [PATCH v2 1/6] x86, mm, pat: Set WT to PA4 slot of PAT MSR
> - /* 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists