Re: [PATCH] md/raid1: change r1conf->r1bio_pool to a pointer type

From: Yu Kuai
Date: Sun Jun 22 2025 - 23:27:06 EST


Hi,

在 2025/06/23 11:18, Wang Jinchao 写道:
Comparing mempool_create_kmalloc_pool() and mempool_create(), the former requires the pool element size as a parameter, while the latter uses r1bio_pool_alloc() to allocate new elements, with the size calculated based on poolinfo->raid_disks.
The key point is poolinfo, which is used for both r1bio_pool and r1buf_pool.
If we change from mempool_create() to mempool_create_kmalloc_pool(), we would need to introduce a new concept, such as r1bio_pool_size, and store it somewhere. In this case, the original conf->poolinfo would lose its meaning and become just r1buf_poolinfo.
So I think keeping poolinfo is a better fit for the pool in RAID1.


I said multiple times it's a fixed size and won't change, you don't need
to store it. Not sure if you get this. :(

conf->r1bio_pool = mempool_create_kmalloc_pool(NR_RAID_BIOS,
offsetof(struct r1bio, bios[mddev->raid_disks *2]);

Thanks,
Kuai