freebsd-dev/sys
Mark Johnston 013072f04c Fix pre-SI_SUB_CPU initialization of per-CPU counters.
r336020 introduced pcpu_page_alloc(), replacing page_alloc() as the
backend allocator for PCPU UMA zones.  Unlike page_alloc(), it does
not honour malloc(9) flags such as M_ZERO or M_NODUMP, so fix that.

r336020 also changed counter(9) to initialize each counter using a
CPU_FOREACH() loop instead of an SMP rendezvous.  Before SI_SUB_CPU,
smp_rendezvous() will only execute the callback on the current CPU
(i.e., CPU 0), so only one counter gets zeroed.  The rest are zeroed
by virtue of the fact that UMA gratuitously zeroes slabs when importing
them into a zone.

Prior to SI_SUB_CPU, all_cpus is clear, so with r336020 we weren't
zeroing vm_cnt counters during boot: the CPU_FOREACH() loop had no
effect, and pcpu_page_alloc() didn't honour M_ZERO.  Fix this by
iterating over the full range of CPU IDs when zeroing counters,
ignoring whether the corresponding bits in all_cpus are set.

Reported and tested by:	pho (previous version)
Reviewed by:		kib (previous version)
Differential Revision:	https://reviews.freebsd.org/D16190
2018-07-10 00:18:12 +00:00
..
amd64 Expand x86 struct pcpus to UMA_PCPU_ALLOC_SIZE AKA PAGE_SIZE. 2018-07-06 19:50:44 +00:00
arm Add pnp info to the imx_spi driver. 2018-07-09 19:00:39 +00:00
arm64 ARM64: Add ThunderX2 CPU revision macro. Add ThunderX2 name in identcpu.c 2018-07-09 08:41:54 +00:00
bsm
cam remove unneeded inclusion of sys/interrupt.h from several files 2018-07-04 09:07:18 +00:00
cddl This exposes ZFS user and group quotas via the normal 2018-07-05 22:56:13 +00:00
compat Create PCI_MATCH and pci_match_device 2018-07-07 15:25:11 +00:00
conf Make ZSTD a real option via ZSTDIO. 2018-07-05 17:07:23 +00:00
contrib MFV: r335802 2018-06-29 23:48:30 +00:00
crypto Implement SHA2-224 submode of SHA2-256 2018-07-09 07:24:05 +00:00
ddb Extend show proc with reaper, sigparent, and vmspace information 2018-05-25 13:59:48 +00:00
dev ig4(4): add devmatch(8) PNP info 2018-07-09 20:00:45 +00:00
dts Add spi-max-frequency properties to all spigen nodes. This is a required 2018-06-23 22:55:22 +00:00
fs Add support for a "forced" pnfsdskill to the pNFS server kernel code. 2018-07-09 19:58:01 +00:00
gdb
geom gpart: add EFI alias for MBR partition scheme 2018-06-17 20:10:48 +00:00
gnu dts: Update our copy to Linux 4.17 2018-06-14 07:12:10 +00:00
i386 Invalidate the mapping before updating its physical address. 2018-07-08 16:51:54 +00:00
isa
kern Fix pre-SI_SUB_CPU initialization of per-CPU counters. 2018-07-10 00:18:12 +00:00
kgssapi
libkern Sync strlcpy with userland version, again 2018-06-21 17:35:13 +00:00
mips Remove duplicate configuration values as they are already defined in 2018-07-06 13:31:06 +00:00
modules Add missing generated header file. 2018-07-09 14:18:03 +00:00
net Deduplicate the code. 2018-07-09 11:03:28 +00:00
net80211 Use an accessor function to access ifr_data. 2018-03-30 18:50:13 +00:00
netgraph Catch up two more places to the V_ifnet change to a CK_STAILQ. 2018-05-24 00:06:55 +00:00
netinet Add "record-state", "set-limit" and "defer-action" rule options to ipfw. 2018-07-09 11:35:18 +00:00
netinet6 fix 335919 - check "last" not "inp" where appropriate 2018-07-04 16:34:07 +00:00
netipsec fix locking within tcp_ipsec_pcbctl() to match ipsec4_pcbctl(), ipsec4_pcbctl() 2018-07-04 17:10:07 +00:00
netpfil Add "record-state", "set-limit" and "defer-action" rule options to ipfw. 2018-07-09 11:35:18 +00:00
netsmb Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
nfs Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
nfsclient
nfsserver
nlm
ofed Revert r335094 and properly fix OFED build after r335053. 2018-06-14 07:55:10 +00:00
opencrypto OCF: Add plain hash modes 2018-07-09 07:28:13 +00:00
powerpc powerpc/powernv: Make opal_i2c driver work with attached i2c drivers 2018-07-09 20:33:48 +00:00
riscv Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
rpc Fix the server side krpc so that the kernel nfsd threads terminate. 2018-07-02 17:50:46 +00:00
security Fix build breakage in veriexec for 32-bit architectures. 2018-06-20 06:54:38 +00:00
sparc64 Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
sys Tweak documentation to RB_ constants to reflect current use 2018-07-10 00:01:14 +00:00
teken teken: Fix sequences header which was crossing the 80-col boundary 2018-05-29 08:41:44 +00:00
tests epoch(9): Make epochs non-preemptible by default 2018-05-18 17:29:43 +00:00
tools Add dtb overlays support 2018-03-24 21:30:24 +00:00
ufs Import commit from NetBSD with checkin message: 2018-07-07 19:11:43 +00:00
vm Fix pre-SI_SUB_CPU initialization of per-CPU counters. 2018-07-10 00:18:12 +00:00
x86 Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
xdr
xen xen: remove dead code from gnttab.h 2018-05-25 08:44:00 +00:00
Makefile