cvs commit: src/sys/platform/vkernel/include pmap_inval.h src/sys/platform/vkernel/platform pmap.c pmap_inval.c src/sys/vm vm_page.c

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Jul 1 19:25:49 PDT 2007


dillon      2007/07/01 19:23:00 PDT

DragonFly src repository

  Modified files:
    sys/platform/vkernel/include pmap_inval.h 
    sys/platform/vkernel/platform pmap.c pmap_inval.c 
    sys/vm               vm_page.c 
  Log:
  The real-kernel madvise and mcontrol system calls handle SMP interactions
  when manipulating virtual page tables.  Construct a new set of functions
  for the virtual kernel to take advantage of this.
  
  Add a cpu cache mask to the pmap structure for the virtual kernel which
  allows us to invalidate per-cpu page table mappings simply by clearing
  the mask.  Also reload PT1pde after a successful cache hit if the cpu
  mask bit is found to be 0.
  
  Redo most of the PTE handling code for the virtual kernel.  Use the new
  invalidation function set and carefully deal with race conditions between
  cpus.  Race conditions are far more serious with a SMP virtual kernel then
  with a real kernel because there are effectively two levels of page table
  caching instead of one, since the real kernel maintains a separate pmap
  for each VM space under the virtual kernel's control in addition to the
  standard TLB interactions.
  
  Revision  Changes    Path
  1.3       +8 -5      src/sys/platform/vkernel/include/pmap_inval.h
  1.25      +163 -188  src/sys/platform/vkernel/platform/pmap.c
  1.4       +130 -63   src/sys/platform/vkernel/platform/pmap_inval.c
  1.35      +1 -1      src/sys/vm/vm_page.c


http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/include/pmap_inval.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/platform/pmap.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/platform/pmap_inval.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_page.c.diff?r1=1.34&r2=1.35&f=u





More information about the Commits mailing list