Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Dec 2002 14:43:19 -0800 (PST)
From:      Jake Burkholder <jake@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/sparc64/include pmap.h tte.h src/sys/sparc64/sparc64 pmap.c tsb.c
Message-ID:  <200212212243.gBLMhJmR070846@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jake        2002/12/21 14:43:19 PST

  Modified files:
    sys/sparc64/include  pmap.h tte.h 
    sys/sparc64/sparc64  pmap.c tsb.c 
  Log:
  - Add a pmap pointer to struct md_page, and use this to find the pmap that
    a mapping belongs to by setting it in the vm_page_t structure that backs
    the tsb page that the tte for a mapping is in.  This allows the pmap that
    a mapping belongs to to be found without keeping a pointer to it in the
    tte itself.
  - Remove the pmap pointer from struct tte and use the space to make the
    tte pv lists doubly linked (TAILQs), like on other architectures.  This
    makes entering or removing a mapping O(1) instead of O(n) where n is the
    number of pmaps a page is mapped by (including kernel_pmap).
  - Use atomic ops for setting and clearing bits in the ttes, now that they
    return the old value and can be easily used for this purpose.
  - Use __builtin_memset for zeroing ttes instead of bzero, so that gcc will
    inline it (4 inline stores using %g0 instead of a function call).
  - Initially set the virtual colour for all the vm_page_ts to be equal to their
    physical colour.  This will be more useful once uma_small_alloc is
    implemented, but basically pages with virtual colour equal to phsyical
    colour are easier to handle at the pmap level because they can be safely
    accessed through cachable direct virtual to physical mappings with that
    colour, without fear of causing illegal dcache aliases.
  
  In total these changes give a minor performance improvement, about 1%
  reduction in system time during buildworld.
  
  Revision  Changes    Path
  1.30      +6 -5      src/sys/sparc64/include/pmap.h
  1.14      +5 -4      src/sys/sparc64/include/tte.h
  1.94      +58 -58    src/sys/sparc64/sparc64/pmap.c
  1.29      +1 -2      src/sys/sparc64/sparc64/tsb.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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