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,