Index: sys/kern/subr_counter.c =================================================================== --- sys/kern/subr_counter.c +++ sys/kern/subr_counter.c @@ -43,15 +43,6 @@ #define IN_SUBR_COUNTER_C #include -static void -counter_u64_zero_sync(counter_u64_t c) -{ - int cpu; - - CPU_FOREACH(cpu) - *(uint64_t*)zpcpu_get_cpu(c, cpu) = 0; -} - void counter_u64_zero(counter_u64_t c) { @@ -69,13 +60,8 @@ counter_u64_t counter_u64_alloc(int flags) { - counter_u64_t r; - - r = uma_zalloc_pcpu(pcpu_zone_64, flags); - if (r != NULL) - counter_u64_zero_sync(r); - return (r); + return (uma_zalloc_pcpu(pcpu_zone_64, flags | M_ZERO); } void Index: sys/vm/uma_core.c =================================================================== --- sys/vm/uma_core.c +++ sys/vm/uma_core.c @@ -2328,10 +2328,10 @@ MPASS(zone->uz_flags & UMA_ZONE_PCPU); #endif - item = uma_zalloc_arg(zone, udata, flags &~ M_ZERO); + item = uma_zalloc_arg(zone, udata, flags & ~M_ZERO); if (item != NULL && (flags & M_ZERO)) { #ifdef SMP - CPU_FOREACH(i) + for (i = 0; i <= mp_maxid; i++) bzero(zpcpu_get_cpu(item, i), zone->uz_size); #else bzero(item, zone->uz_size);