Date: Thu, 5 Nov 2020 15:08:57 +0000 (UTC) From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r367384 - in head/sys: kern sys vm Message-ID: <202011051508.0A5F8vik036021@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mjg Date: Thu Nov 5 15:08:56 2020 New Revision: 367384 URL: https://svnweb.freebsd.org/changeset/base/367384 Log: Rationalize per-cpu zones. The 2 provided zones had inconsistent naming between each other ("int" and "64") and other allocator zones (which use bytes). Follow malloc by naming them "pcpu-" + size in bytes. This is a step towards replacing ad-hoc per-cpu zones with general slabs. Modified: head/sys/kern/kern_rmlock.c head/sys/kern/subr_counter.c head/sys/kern/subr_pcpu.c head/sys/kern/vfs_mount.c head/sys/sys/param.h head/sys/vm/uma.h Modified: head/sys/kern/kern_rmlock.c ============================================================================== --- head/sys/kern/kern_rmlock.c Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/kern/kern_rmlock.c Thu Nov 5 15:08:56 2020 (r367384) @@ -890,8 +890,8 @@ rms_init(struct rmslock *rms, const char *name) rms->writers = 0; rms->readers = 0; mtx_init(&rms->mtx, name, NULL, MTX_DEF | MTX_NEW); - rms->readers_pcpu = uma_zalloc_pcpu(pcpu_zone_int, M_WAITOK | M_ZERO); - rms->readers_influx = uma_zalloc_pcpu(pcpu_zone_int, M_WAITOK | M_ZERO); + rms->readers_pcpu = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); + rms->readers_influx = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); } void @@ -901,8 +901,8 @@ rms_destroy(struct rmslock *rms) MPASS(rms->writers == 0); MPASS(rms->readers == 0); mtx_destroy(&rms->mtx); - uma_zfree_pcpu(pcpu_zone_int, rms->readers_pcpu); - uma_zfree_pcpu(pcpu_zone_int, rms->readers_influx); + uma_zfree_pcpu(pcpu_zone_4, rms->readers_pcpu); + uma_zfree_pcpu(pcpu_zone_4, rms->readers_influx); } static void __noinline Modified: head/sys/kern/subr_counter.c ============================================================================== --- head/sys/kern/subr_counter.c Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/kern/subr_counter.c Thu Nov 5 15:08:56 2020 (r367384) @@ -61,14 +61,14 @@ counter_u64_t counter_u64_alloc(int flags) { - return (uma_zalloc_pcpu(pcpu_zone_64, flags | M_ZERO)); + return (uma_zalloc_pcpu(pcpu_zone_8, flags | M_ZERO)); } void counter_u64_free(counter_u64_t c) { - uma_zfree_pcpu(pcpu_zone_64, c); + uma_zfree_pcpu(pcpu_zone_8, c); } int Modified: head/sys/kern/subr_pcpu.c ============================================================================== --- head/sys/kern/subr_pcpu.c Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/kern/subr_pcpu.c Thu Nov 5 15:08:56 2020 (r367384) @@ -131,21 +131,19 @@ dpcpu_startup(void *dummy __unused) SYSINIT(dpcpu, SI_SUB_KLD, SI_ORDER_FIRST, dpcpu_startup, NULL); /* - * UMA_PCPU_ZONE zones, that are available for all kernel - * consumers. Right now 64 bit zone is used for counter(9) - * and int zone is used for mount point counters. + * UMA_ZONE_PCPU zones for general kernel use. */ -uma_zone_t pcpu_zone_int; -uma_zone_t pcpu_zone_64; +uma_zone_t pcpu_zone_4; +uma_zone_t pcpu_zone_8; static void pcpu_zones_startup(void) { - pcpu_zone_int = uma_zcreate("int pcpu", sizeof(int), + pcpu_zone_4 = uma_zcreate("pcpu-4", sizeof(uint32_t), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU); - pcpu_zone_64 = uma_zcreate("64 pcpu", sizeof(uint64_t), + pcpu_zone_8 = uma_zcreate("pcpu-8", sizeof(uint64_t), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU); } SYSINIT(pcpu_zones, SI_SUB_COUNTER, SI_ORDER_FIRST, pcpu_zones_startup, NULL); Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/kern/vfs_mount.c Thu Nov 5 15:08:56 2020 (r367384) @@ -127,13 +127,13 @@ mount_init(void *mem, int size, int flags) mtx_init(&mp->mnt_mtx, "struct mount mtx", NULL, MTX_DEF); mtx_init(&mp->mnt_listmtx, "struct mount vlist mtx", NULL, MTX_DEF); lockinit(&mp->mnt_explock, PVFS, "explock", 0, 0); - mp->mnt_thread_in_ops_pcpu = uma_zalloc_pcpu(pcpu_zone_int, + mp->mnt_thread_in_ops_pcpu = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); - mp->mnt_ref_pcpu = uma_zalloc_pcpu(pcpu_zone_int, + mp->mnt_ref_pcpu = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); - mp->mnt_lockref_pcpu = uma_zalloc_pcpu(pcpu_zone_int, + mp->mnt_lockref_pcpu = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); - mp->mnt_writeopcount_pcpu = uma_zalloc_pcpu(pcpu_zone_int, + mp->mnt_writeopcount_pcpu = uma_zalloc_pcpu(pcpu_zone_4, M_WAITOK | M_ZERO); mp->mnt_ref = 0; mp->mnt_vfs_ops = 1; @@ -147,10 +147,10 @@ mount_fini(void *mem, int size) struct mount *mp; mp = (struct mount *)mem; - uma_zfree_pcpu(pcpu_zone_int, mp->mnt_writeopcount_pcpu); - uma_zfree_pcpu(pcpu_zone_int, mp->mnt_lockref_pcpu); - uma_zfree_pcpu(pcpu_zone_int, mp->mnt_ref_pcpu); - uma_zfree_pcpu(pcpu_zone_int, mp->mnt_thread_in_ops_pcpu); + uma_zfree_pcpu(pcpu_zone_4, mp->mnt_writeopcount_pcpu); + uma_zfree_pcpu(pcpu_zone_4, mp->mnt_lockref_pcpu); + uma_zfree_pcpu(pcpu_zone_4, mp->mnt_ref_pcpu); + uma_zfree_pcpu(pcpu_zone_4, mp->mnt_thread_in_ops_pcpu); lockdestroy(&mp->mnt_explock); mtx_destroy(&mp->mnt_listmtx); mtx_destroy(&mp->mnt_mtx); Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/sys/param.h Thu Nov 5 15:08:56 2020 (r367384) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300125 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300126 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Thu Nov 5 14:15:50 2020 (r367383) +++ head/sys/vm/uma.h Thu Nov 5 15:08:56 2020 (r367384) @@ -666,8 +666,8 @@ size_t uma_zone_memory(uma_zone_t zone); /* * Common UMA_ZONE_PCPU zones. */ -extern uma_zone_t pcpu_zone_int; -extern uma_zone_t pcpu_zone_64; +extern uma_zone_t pcpu_zone_4; +extern uma_zone_t pcpu_zone_8; /* * Exported statistics structures to be used by user space monitoring tools.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011051508.0A5F8vik036021>