svn commit: r354367 - head/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Tue Nov 5 21:38:48 UTC 2019
Author: kib
Date: Tue Nov 5 21:38:48 2019
New Revision: 354367
URL: https://svnweb.freebsd.org/changeset/base/354367
Log:
Switch cache zones from early counters to real implementation.
Early counter mock can be only used on BSP for amd64, when APs try to
update it that causes random memory corruption.
N.B. This is a temporary patch to plug the corruption for now, while
a proper solution for handling cache zones in zone_foreach() is being
developed.
In collaboration with: pho
Reviewed by: markj
Sponsored by: The FreeBSD Foundation, Mellanox Technologies
Modified:
head/sys/vm/uma_core.c
Modified: head/sys/vm/uma_core.c
==============================================================================
--- head/sys/vm/uma_core.c Tue Nov 5 19:15:43 2019 (r354366)
+++ head/sys/vm/uma_core.c Tue Nov 5 21:38:48 2019 (r354367)
@@ -2198,6 +2198,7 @@ uma_startup2(void)
static void
uma_startup3(void)
{
+ uma_zone_t zone;
#ifdef INVARIANTS
TUNABLE_INT_FETCH("vm.debug.divisor", &dbg_divisor);
@@ -2205,6 +2206,8 @@ uma_startup3(void)
uma_skip_cnt = counter_u64_alloc(M_WAITOK);
#endif
zone_foreach(zone_alloc_counters);
+ LIST_FOREACH(zone, &uma_cachezones, uz_link)
+ zone_alloc_counters(zone);
callout_init(&uma_callout, 1);
callout_reset(&uma_callout, UMA_TIMEOUT * hz, uma_timeout, NULL);
booted = BOOT_RUNNING;
More information about the svn-src-all
mailing list