mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-09-15 13:50:11 +03:00
Silence zstd large allocation warning
Allow zstd_mempool_init() to allocate using vmem_alloc() instead of kmem_alloc() to silence the large allocation warning on Linux during module load when the system has a large number of CPUs. It's not at all clear to me that scaling the allocation size with the number of CPUs is beneficial and that should be evaluated. But for the moment this should resolve the warning without introducing any unexpected side effects. Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Reviewed-by: Rob Norris <robn@despairlabs.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #17620 Closes #11557
This commit is contained in:
parent
46de04d2e9
commit
3e78905ffb
@ -796,9 +796,9 @@ static void __init
|
|||||||
zstd_mempool_init(void)
|
zstd_mempool_init(void)
|
||||||
{
|
{
|
||||||
zstd_mempool_cctx =
|
zstd_mempool_cctx =
|
||||||
kmem_zalloc(ZSTD_POOL_MAX * sizeof (struct zstd_pool), KM_SLEEP);
|
vmem_zalloc(ZSTD_POOL_MAX * sizeof (struct zstd_pool), KM_SLEEP);
|
||||||
zstd_mempool_dctx =
|
zstd_mempool_dctx =
|
||||||
kmem_zalloc(ZSTD_POOL_MAX * sizeof (struct zstd_pool), KM_SLEEP);
|
vmem_zalloc(ZSTD_POOL_MAX * sizeof (struct zstd_pool), KM_SLEEP);
|
||||||
|
|
||||||
for (int i = 0; i < ZSTD_POOL_MAX; i++) {
|
for (int i = 0; i < ZSTD_POOL_MAX; i++) {
|
||||||
mutex_init(&zstd_mempool_cctx[i].barrier, NULL,
|
mutex_init(&zstd_mempool_cctx[i].barrier, NULL,
|
||||||
@ -844,8 +844,8 @@ zstd_mempool_deinit(void)
|
|||||||
release_pool(&zstd_mempool_dctx[i]);
|
release_pool(&zstd_mempool_dctx[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
kmem_free(zstd_mempool_dctx, ZSTD_POOL_MAX * sizeof (struct zstd_pool));
|
vmem_free(zstd_mempool_dctx, ZSTD_POOL_MAX * sizeof (struct zstd_pool));
|
||||||
kmem_free(zstd_mempool_cctx, ZSTD_POOL_MAX * sizeof (struct zstd_pool));
|
vmem_free(zstd_mempool_cctx, ZSTD_POOL_MAX * sizeof (struct zstd_pool));
|
||||||
zstd_mempool_dctx = NULL;
|
zstd_mempool_dctx = NULL;
|
||||||
zstd_mempool_cctx = NULL;
|
zstd_mempool_cctx = NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user