Module Name: src Committed By: chs Date: Mon Apr 13 00:27:17 UTC 2020
Modified Files: src/share/man/man9: pool.9 pool_cache.9 src/sys/arch/arm/arm32: pmap.c src/sys/arch/xen/x86: xen_shm_machdep.c src/sys/arch/xen/xen: xbdback_xenbus.c src/sys/dev/ic: ncr53c9x.c src/sys/dev/raidframe: rf_netbsdkintf.c rf_reconmap.c src/sys/dev/scsipi: scsipi_base.c src/sys/kern: subr_pool.c src/sys/opencrypto: cryptodev.c src/sys/sys: pool.h Log Message: slightly change and fix the semantics of pool_set*wat(), pool_sethardlimit() and pool_prime() (and their pool_cache_* counterparts): - the pool_set*wat() APIs are supposed to specify thresholds for the count of free items in the pool before pool pages are automatically allocated or freed during pool_get() / pool_put(), whereas pool_sethardlimit() and pool_prime() are supposed to specify minimum and maximum numbers of total items in the pool (both free and allocated). these were somewhat conflated in the existing code, so separate them as they were intended. - change pool_prime() to take an absolute number of items to preallocate rather than an increment over whatever was done before, and wait for any memory allocations to succeed. since pool_prime() can no longer fail after this, change its return value to void and adjust all callers. - pool_setlowat() is documented as not immediately attempting to allocate any memory, but it was changed some time ago to immediately try to allocate up to the lowat level, so just fix the manpage to describe the current behaviour. - add a pool_cache_prime() to complete the API set. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/share/man/man9/pool.9 cvs rdiff -u -r1.20 -r1.21 src/share/man/man9/pool_cache.9 cvs rdiff -u -r1.402 -r1.403 src/sys/arch/arm/arm32/pmap.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/xen/x86/xen_shm_machdep.c cvs rdiff -u -r1.77 -r1.78 src/sys/arch/xen/xen/xbdback_xenbus.c cvs rdiff -u -r1.152 -r1.153 src/sys/dev/ic/ncr53c9x.c cvs rdiff -u -r1.381 -r1.382 src/sys/dev/raidframe/rf_netbsdkintf.c cvs rdiff -u -r1.37 -r1.38 src/sys/dev/raidframe/rf_reconmap.c cvs rdiff -u -r1.185 -r1.186 src/sys/dev/scsipi/scsipi_base.c cvs rdiff -u -r1.266 -r1.267 src/sys/kern/subr_pool.c cvs rdiff -u -r1.104 -r1.105 src/sys/opencrypto/cryptodev.c cvs rdiff -u -r1.89 -r1.90 src/sys/sys/pool.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.