Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Nov 2010 19:52:44 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/amd64/amd64 pmap.c src/sys/i386/i386 pmap.c
Message-ID:  <201011221952.oAMJqxcY084817@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jkim        2010-11-22 19:52:44 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      pmap.c 
    sys/i386/i386        pmap.c 
  Log:
  SVN rev 215703 on 2010-11-22 19:52:44Z by jkim
  
  - Disable caches and flush caches/TLBs when we update PAT as we do for MTRR.
  Flushing TLBs is required to ensure cache coherency according to the AMD64
  architecture manual.  Flushing caches is only required when changing from a
  cacheable memory type (WB, WP, or WT) to an uncacheable type (WC, UC, or
  UC-).  Since this function is only used once per processor during startup,
  there is no need to take any shortcuts.
  - Leave PAT indices 0-3 at the default of WB, WT, UC-, and UC.  Program 5 as
  WP (from default WT) and 6 as WC (from default UC-).  Leave 4 and 7 at the
  default of WB and UC.  This is to avoid transition from a cacheable memory
  type to an uncacheable type to minimize possible cache incoherency.  Since
  we perform flushing caches and TLBs now, this change may not be necessary
  any more but we do not want to take any chances.
  - Remove Apple hardware specific quirks.  With the above changes, it seems
  this hack is no longer needed.
  - Improve pmap_cache_bits() with an array to map PAT memory type to index.
  This array is initialized early from pmap_init_pat(), so that we do not need
  to handle special cases in the function any more.  Now this function is
  identical on both amd64 and i386.
  
  Reviewed by:    jhb
  Tested by:      RM (reuf_m at hotmail dot com)
                  Ryszard Czekaj (rychoo at freeshell dot net)
                  army.of.root (army dot of dot root at googlemail dot com)
  MFC after:      3 days
  
  Revision  Changes    Path
  1.716     +62 -74    src/sys/amd64/amd64/pmap.c
  1.693     +70 -92    src/sys/i386/i386/pmap.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011221952.oAMJqxcY084817>