[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));