svn commit: r357019 - head/sys/vm
Ryan Libby
rlibby at FreeBSD.org
Thu Jan 23 04:56:39 UTC 2020
Author: rlibby
Date: Thu Jan 23 04:56:38 2020
New Revision: 357019
URL: https://svnweb.freebsd.org/changeset/base/357019
Log:
uma: fix zone domain overlaying pcpu cache with disabled cpus
UMA zone structures have two arrays at the end which are sized according
to the machine: an array of CPU count length, and an array of NUMA
domain count length. The CPU counting was wrong in the case where some
CPUs are disabled (when mp_ncpus != mp_maxid + 1), and this caused the
second array to be overlaid with the first.
Reported by: olivier
Reviewed by: jeff, markj
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D23318
Modified:
head/sys/vm/uma_core.c
Modified: head/sys/vm/uma_core.c
==============================================================================
--- head/sys/vm/uma_core.c Thu Jan 23 04:56:34 2020 (r357018)
+++ head/sys/vm/uma_core.c Thu Jan 23 04:56:38 2020 (r357019)
@@ -2297,7 +2297,8 @@ zone_ctor(void *mem, int size, void *udata, int flags)
zone->uz_flags = 0;
zone->uz_warning = NULL;
/* The domain structures follow the cpu structures. */
- zone->uz_domain = (struct uma_zone_domain *)&zone->uz_cpu[mp_ncpus];
+ zone->uz_domain =
+ (struct uma_zone_domain *)&zone->uz_cpu[mp_maxid + 1];
zone->uz_bkt_max = ULONG_MAX;
timevalclear(&zone->uz_ratecheck);
More information about the svn-src-head
mailing list