cvs commit: src/sys/amd64/amd64 mp_machdep.c pmap.c src/sys/i386/i386 mp_machdep.c pmap.c vm_machdep.c

Alan Cox alc at FreeBSD.org
Mon Mar 5 21:40:12 UTC 2007


alc         2007-03-05 21:40:11 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      mp_machdep.c pmap.c 
    sys/i386/i386        mp_machdep.c pmap.c vm_machdep.c 
  Log:
  Acquiring smp_ipi_mtx on every call to pmap_invalidate_*() is wasteful.
  For example, during a buildworld more than half of the calls do not
  generate an IPI because the only TLB entry invalidated is on the calling
  processor.  This revision pushes down the acquisition and release of
  smp_ipi_mtx into smp_tlb_shootdown() and smp_targeted_tlb_shootdown() and
  instead uses sched_pin() and sched_unpin() in pmap_invalidate_*() so that
  thread migration doesn't lead to a missed TLB invalidation.
  
  Reviewed by: jhb
  MFC after: 3 weeks
  
  Revision  Changes    Path
  1.282     +8 -2      src/sys/amd64/amd64/mp_machdep.c
  1.580     +8 -64     src/sys/amd64/amd64/pmap.c
  1.275     +9 -2      src/sys/i386/i386/mp_machdep.c
  1.582     +8 -64     src/sys/i386/i386/pmap.c
  1.276     +0 -2      src/sys/i386/i386/vm_machdep.c


More information about the cvs-src mailing list