Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 712,723 ****
}
if ((kpd->kp_flags & KPD_HASAMP) == 0) {
anon_free(kpd->kp_anon, kpd->kp_anon_idx + i,
PAGESIZE);
anon_unresv_zone(PAGESIZE, NULL);
! atomic_add_long(&anon_segkp_pages_resv,
! -1);
}
TRACE_5(TR_FAC_VM,
TR_ANON_SEGKP, "anon segkp:%p %p %lu %u %u",
kpd, va, PAGESIZE, 0, 0);
} else {
--- 712,722 ----
}
if ((kpd->kp_flags & KPD_HASAMP) == 0) {
anon_free(kpd->kp_anon, kpd->kp_anon_idx + i,
PAGESIZE);
anon_unresv_zone(PAGESIZE, NULL);
! atomic_dec_ulong(&anon_segkp_pages_resv);
}
TRACE_5(TR_FAC_VM,
TR_ANON_SEGKP, "anon segkp:%p %p %lu %u %u",
kpd, va, PAGESIZE, 0, 0);
} else {
*** 836,857 ****
* The page is left SE_SHARED locked so we can hold on to
* the page_t pointer.
*/
curthread->t_red_pp = red_pp;
! atomic_add_32(&red_nmapped, 1);
while (fp - (uintptr_t)curthread->t_stkbase < red_closest) {
(void) atomic_cas_32(&red_closest, red_closest,
(uint32_t)(fp - (uintptr_t)curthread->t_stkbase));
}
return (1);
}
stkbase = (caddr_t)(((uintptr_t)curthread->t_stkbase &
(uintptr_t)PAGEMASK) - PAGESIZE);
! atomic_add_32(&red_ndoubles, 1);
if (fp - (uintptr_t)stkbase < RED_DEEP_THRESHOLD) {
/*
* Oh boy. We're already deep within the mapped-in
* redzone page, and the caller is trying to prepare
--- 835,856 ----
* The page is left SE_SHARED locked so we can hold on to
* the page_t pointer.
*/
curthread->t_red_pp = red_pp;
! atomic_inc_32(&red_nmapped);
while (fp - (uintptr_t)curthread->t_stkbase < red_closest) {
(void) atomic_cas_32(&red_closest, red_closest,
(uint32_t)(fp - (uintptr_t)curthread->t_stkbase));
}
return (1);
}
stkbase = (caddr_t)(((uintptr_t)curthread->t_stkbase &
(uintptr_t)PAGEMASK) - PAGESIZE);
! atomic_inc_32(&red_ndoubles);
if (fp - (uintptr_t)stkbase < RED_DEEP_THRESHOLD) {
/*
* Oh boy. We're already deep within the mapped-in
* redzone page, and the caller is trying to prepare
*** 1435,1454 ****
/*ARGSUSED*/
static int
segkp_mem_config_pre_del(void *arg, pgcnt_t delta_pages)
{
! atomic_add_32(&segkp_indel, 1);
segkp_cache_free();
return (0);
}
/*ARGSUSED*/
static void
segkp_mem_config_post_del(void *arg, pgcnt_t delta_pages, int cancelled)
{
! atomic_add_32(&segkp_indel, -1);
}
static kphysm_setup_vector_t segkp_mem_config_vec = {
KPHYSM_SETUP_VECTOR_VERSION,
segkp_mem_config_post_add,
--- 1434,1453 ----
/*ARGSUSED*/
static int
segkp_mem_config_pre_del(void *arg, pgcnt_t delta_pages)
{
! atomic_inc_32(&segkp_indel);
segkp_cache_free();
return (0);
}
/*ARGSUSED*/
static void
segkp_mem_config_post_del(void *arg, pgcnt_t delta_pages, int cancelled)
{
! atomic_dec_32(&segkp_indel);
}
static kphysm_setup_vector_t segkp_mem_config_vec = {
KPHYSM_SETUP_VECTOR_VERSION,
segkp_mem_config_post_add,