Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jul 2010 18:22:44 +0000 (UTC)
From:      Alan Cox <alc@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:  <201007101824.o6AIO1qc085971@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
alc         2010-07-10 18:22:44 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      pmap.c 
    sys/i386/i386        pmap.c 
  Log:
  SVN rev 209887 on 2010-07-10 18:22:44Z by alc
  
  Reduce the number of global TLB shootdowns generated by pmap_qenter().
  Specifically, teach pmap_qenter() to recognize the case when it is being
  asked to replace a mapping with the very same mapping and not generate
  a shootdown.  Unfortunately, the buffer cache commonly passes an entire
  buffer to pmap_qenter() when only a subset of the mappings are changing.
  For the extension of buffers in allocbuf() this was resulting in
  unnecessary shootdowns.  The addition of new pages to the end of the
  buffer need not and did not trigger a shootdown, but overwriting the
  initial mappings with the very same mappings was seen as a change that
  necessitated a shootdown.  With this change, that is no longer so.
  
  For a "buildworld" on amd64, this change eliminates 14-15% of the
  pmap_invalidate_range() shootdowns, and about 4% of the overall
  shootdowns.
  
  MFC after:      3 weeks
  
  Revision  Changes    Path
  1.708     +9 -6      src/sys/amd64/amd64/pmap.c
  1.688     +9 -6      src/sys/i386/i386/pmap.c



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