summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/lwp.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/os/lwp.c')
-rw-r--r--usr/src/uts/common/os/lwp.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/uts/common/os/lwp.c b/usr/src/uts/common/os/lwp.c
index 6d518e1aae..a94cb6515a 100644
--- a/usr/src/uts/common/os/lwp.c
+++ b/usr/src/uts/common/os/lwp.c
@@ -146,6 +146,7 @@ lwp_create(void (*proc)(), caddr_t arg, size_t len, proc_t *p,
if (rctlfail) {
mutex_exit(&p->p_zone->zone_nlwps_lock);
mutex_exit(&p->p_lock);
+ atomic_add_32(&p->p_zone->zone_ffcap, 1);
return (NULL);
}
p->p_task->tk_nlwps++;
@@ -204,6 +205,7 @@ lwp_create(void (*proc)(), caddr_t arg, size_t len, proc_t *p,
p->p_zone->zone_nlwps--;
mutex_exit(&p->p_zone->zone_nlwps_lock);
mutex_exit(&p->p_lock);
+ atomic_add_32(&p->p_zone->zone_ffnomem, 1);
return (NULL);
}
} else {
@@ -217,6 +219,7 @@ lwp_create(void (*proc)(), caddr_t arg, size_t len, proc_t *p,
p->p_zone->zone_nlwps--;
mutex_exit(&p->p_zone->zone_nlwps_lock);
mutex_exit(&p->p_lock);
+ atomic_add_32(&p->p_zone->zone_ffnomem, 1);
return (NULL);
}
}
@@ -582,10 +585,12 @@ grow:
err = CL_FORK(curthread, t, bufp);
t->t_cid = cid;
}
- if (err)
+ if (err) {
+ atomic_add_32(&p->p_zone->zone_ffmisc, 1);
goto error;
- else
+ } else {
bufp = NULL;
+ }
}
/*
@@ -612,6 +617,7 @@ grow:
* All lwpids are allocated; fail the request.
*/
err = 1;
+ atomic_add_32(&p->p_zone->zone_ffnoproc, 1);
goto error;
}
/*
@@ -631,6 +637,7 @@ grow:
if (PROC_IS_BRANDED(p)) {
if (BROP(p)->b_initlwp(lwp)) {
err = 1;
+ atomic_add_32(&p->p_zone->zone_ffmisc, 1);
goto error;
}
branded = 1;