diff options
Diffstat (limited to 'sys/sparc64/sparc64/vm_machdep.c')
-rw-r--r-- | sys/sparc64/sparc64/vm_machdep.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/vm_machdep.c b/sys/sparc64/sparc64/vm_machdep.c index e29b48a..2400895 100644 --- a/sys/sparc64/sparc64/vm_machdep.c +++ b/sys/sparc64/sparc64/vm_machdep.c @@ -100,6 +100,7 @@ static struct { } sf_freelist; static u_int sf_buf_alloc_want; +extern int nsfbufspeak, nsfbufsused; PMAP_STATS_VAR(uma_nsmall_alloc); PMAP_STATS_VAR(uma_nsmall_alloc_oc); @@ -409,6 +410,8 @@ sf_buf_alloc(struct vm_page *m) if (sf != NULL) { SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); sf->m = m; + nsfbufsused++; + nsfbufspeak = max(nsfbufspeak, nsfbufsused); pmap_qenter(sf->kva, &sf->m, 1); } mtx_unlock(&sf_freelist.sf_lock); @@ -440,6 +443,7 @@ sf_buf_free(void *addr, void *args) sf->m = NULL; mtx_lock(&sf_freelist.sf_lock); SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); + nsfbufsused--; if (sf_buf_alloc_want > 0) wakeup_one(&sf_freelist); mtx_unlock(&sf_freelist.sf_lock); |