Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752115AbcCVVXS (ORCPT ); Tue, 22 Mar 2016 17:23:18 -0400 Received: from g4t3426.houston.hp.com ([15.201.208.54]:55693 "EHLO g4t3426.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751286AbcCVVXQ (ORCPT ); Tue, 22 Mar 2016 17:23:16 -0400 Message-ID: <1458684938.6393.636.camel@hpe.com> Subject: Re: [PATCH v2 6/6] x86/pat: Document PAT initializations From: Toshi Kani To: Borislav Petkov Cc: mingo@kernel.org, hpa@zytor.com, tglx@linutronix.de, mcgrof@suse.com, jgross@suse.com, paul.gortmaker@windriver.com, konrad.wilk@oracle.com, elliott@hpe.com, x86@kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org Date: Tue, 22 Mar 2016 16:15:38 -0600 In-Reply-To: <20160322170222.GG5656@pd.tnic> References: <1458175619-32206-1-git-send-email-toshi.kani@hpe.com> <1458175619-32206-5-git-send-email-toshi.kani@hpe.com> <20160322170222.GG5656@pd.tnic> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.4 (3.18.4-1.fc23) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2479 Lines: 74 On Tue, 2016-03-22 at 18:02 +0100, Borislav Petkov wrote: > On Wed, Mar 16, 2016 at 06:46:59PM -0600, Toshi Kani wrote: > > Update PAT documentation to describe how PAT is initialized under > > various configurations. > >  : > >   > > +PAT Initialization > > +------------------ > > + > > +The following table describes how PAT is initialized under various > > +configurations. PAT must be set to enable to initialize PAT MSR in > > order > > Err "PAT MSR must be updated by Linux in order to support WC and WT" ... > or so? Right. Will do. > > +to support WC and WT attributes. Otherwise, PAT keeps PAT MSR value > > set > > +by BIOS. > > "Otherwise, the PAT MSR has the value programmed in it by the firmware." Will do. > > Note, Xen enables WC attribute in BIOS setup for guests. > > + > > + MTRR PAT   Call Sequence               PAT State  PAT MSR > > + ========================================================= > > + E    E     MTRR -> pat_init()          Enable     OS > > s/Enable/Enabled/ Will do. > MTRR->pat_init() - either use function names for both or do pseudo like > so: > > MTRR init -> PAT init OK, I will change all to pseudo.  MTRR has multiple caller functions, and we do not have enough space to write them all. > > + E    D     MTRR -> pat_init()          Disable    - > > s/Disable/Disabled/. Ditto for the rest. Will do. > > + D    E     MTRR -> pat_disable()       Disable    BIOS > > + D    D     MTRR -> pat_disable()       Disable    - > > + -    np/E  nopat() -> pat_disable()    Disable    BIOS > > + -    np/D  nopat() -> pat_disable()    Disable    - > > + E    !P/E  MTRR -> pat_init()          Disable    BIOS > > + D    !P/E  MTRR -> pat_disable()       Disable    BIOS > > + !M   !P/E  MTRR stub -> pat_disable()  Disable    BIOS > > + > > + Legend > > + ------------------------------------------------ > > + E        Feature enabled in CPU > > + D   Feature disabled/unsupported in CPU > > + np   "nopat" boot option specified > > + !P   CONFIG_X86_PAT option unset > > + !M   CONFIG_MTRR option unset > > + Enable   PAT state set to enable > > + Disable  PAT state set to disable > > + OS       PAT initializes PAT MSR with OS setup > > + BIOS     PAT keeps PAT MSR with BIOS setup > > + Thanks, -Toshi