Another patch

From: Andrew Valencia <vandys_at_nospam.org>
Date: Mon Feb 07 1994 - 19:40:28 PST

This bug will show up as vmap depletion (the kernel has a general purpose
pool of virtual addresses, organized as a resource map named "vmap"). Most
likely you'll just see a system hang, although you can punch out to the
kernel debugger. You'll find a process sleep'ing with a "wchan" of
vmap_sema. This bug is caused by the fact that the early VM system didn't
need a virtual address for the root page table of PTEs. When I converted
to virtual addresses, I didn't switch the cleanup code to free the virtual
address--it still just freed the physical page.

Apply this to os/mach/hat.c

                                                Andy

*** c:/tmp/T0AA.AAA Mon Feb 07 20:32:50 1994
--- hat.c Mon Feb 07 20:18:30 1994
***************
*** 121,133 ****
                  bit <<= 1;
          }
  
          /*
           * Free root and map
           */
! free_page(btop(vas->v_hat.h_cr3));
          free(vas->v_hat.h_map);
  }
  
  /*
   * hat_addtrans()
   * Add a translation given a view
--- 121,133 ----
                  bit <<= 1;
          }
  
          /*
           * Free root and map
           */
! free(vas->v_hat.h_vcr3);
          free(vas->v_hat.h_map);
  }
  
  /*
   * hat_addtrans()
   * Add a translation given a view
Received on Mon Feb 7 20:10:31 1994

This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 21:02:10 PDT