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

RSS patch (Re: Please test this patch on NetBSD/macppc)



>そうなりますね。ps の出力も %CPU はそれっぽいですが
>RSS はみんな 0 になってますし。

RSS をそれっぽく出すのだったらこんなんで出ます。ずっとつかってると
 < 0 になっちゃったり 100% を超えたりしますが、原因が MI なんだか
MD なんだかよくわかりません:-)。ずいぶん前に書いたのだけど、よく
わかんないのでまだ commit してません。

コンパイルしてみるといくつかエラーになるはずなので、適当に #include <vm/vm.h>
とかいれてやってください。genassym.cf とあとどこだったかな。

# PMAP_NEW で動くようになった。(^^)


*** /a/NetBSD/src/sys/arch/powerpc/powerpc/pmap.c	Fri Jun  5 20:43:20 1998
--- ./pmap.c	Fri Jun 19 22:04:30 1998
***************
*** 1123,1128 ****
--- 1123,1129 ----
  	 * Try to insert directly into HTAB.
  	 */
  	if (pte_insert(idx, &pte)) {
+ 		pm->pm_stats.resident_count++;
  		splx(s);
  		return;
  	}
***************
*** 1161,1166 ****
--- 1162,1168 ----
  				asm volatile ("sync");
  				tlbie(va);
  				tlbsync();
+ 				pm->pm_stats.resident_count--;
  			}
  		for (ptp = ptable + (idx ^ ptab_mask) * 8, i = 8; --i >= 0; ptp++)
  			if (ptematch(ptp, sr, va, PTE_VALID | PTE_HID)) {
***************
*** 1169,1174 ****
--- 1171,1177 ----
  				asm volatile ("sync");
  				tlbie(va);
  				tlbsync();
+ 				pm->pm_stats.resident_count--;
  			}
  		for (po = potable[idx].lh_first; po; po = npo) {
  			npo = po->po_list.le_next;
*** /a/NetBSD/src/sys/arch/powerpc/include/pmap.h	Thu Feb 12 04:19:14 1998
--- ./pmap.h	Fri Jun 19 22:02:18 1998
***************
*** 54,59 ****
--- 54,60 ----
  struct pmap {
  	sr_t pm_sr[16];		/* segments used in this pmap */
  	int pm_refs;		/* ref count */
+ 	struct pmap_statistics	pm_stats;	/* pmap statistics */
  };
  
  typedef	struct pmap *pmap_t;
***************
*** 69,74 ****
--- 70,77 ----
  #define	pmap_change_wiring(pm, va, wired)
  
  #define	pmap_phys_address(x)		(x)
+ 
+ #define	pmap_resident_count(pm)		((pm)->pm_stats.resident_count)
  
  void pmap_bootstrap __P((u_int kernelstart, u_int kernelend));