[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: UBC and pmap(Re: Tiny chage of hpcfp)



TAKEMURA Shin <takemura@netbsd.org> writes:

>  > …か, 要ると判っている分についてはあらかじめ用意しておくのでしょうね.
> 
> どこをどれだけ用意しておけばいいのでしょうか?
> 計算方法は?多めに用意した場合、どの程度のコスト(メモリの無駄)が
> 生じるのでしょうか?

UBC window (かな?) の分については, UBC_NWINS * UBC_WINSIZE / NBPG (or
tr A-Z a-z; でも ubc_winsize は定義していあるだけだし…) でしょう.  無
駄は * sizeof(pt_entry_t) です.

用意しておかないと, UPAGE の分が足らなくなって fork できなかったりする
のでしょう.

enami.

Index: pmap.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/mips/mips/pmap.c,v
retrieving revision 1.115
diff -c -r1.115 pmap.c
*** pmap.c	2000/12/10 19:25:44	1.115
--- pmap.c	2000/12/18 01:58:17
***************
*** 267,275 ****
  	 * Figure out how many PTE's are necessary to map the kernel.
  	 * We also reserve space for kmem_alloc_pageable() for vm_fork().
  	 */
! 	Sysmapsize = (VM_PHYS_SIZE +
! 		nbuf * MAXBSIZE + 16 * NCARGS + PAGER_MAP_SIZE) / NBPG +
! 		(maxproc * UPAGES) + nkmempages;
  
  #ifdef SYSVSHM
  	Sysmapsize += shminfo.shmall;
--- 267,275 ----
  	 * Figure out how many PTE's are necessary to map the kernel.
  	 * We also reserve space for kmem_alloc_pageable() for vm_fork().
  	 */
! 	Sysmapsize = (VM_PHYS_SIZE + nbuf * MAXBSIZE + 16 * NCARGS +
! 	    PAGER_MAP_SIZE + UBC_NWINS * UBC_WINSIZE) / NBPG +
! 	    (maxproc * UPAGES) + nkmempages;
  
  #ifdef SYSVSHM
  	Sysmapsize += shminfo.shmall;