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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/18/25 19:41, Wang Jinchao wrote:
In raid1_reshape(), newpool is a stack variable.
mempool_init() initializes newpool->wait with the stack address.
After assigning newpool to conf->r1bio_pool, the wait queue
need to be reinitialized, which is not ideal.

Change raid1_conf->r1bio_pool to a pointer type and
replace mempool_init() with mempool_create() to
avoid referencing a stack-based wait queue.



Can you also switch to kmalloc pool in this patch?

Thanks,
Kuai

Hi Kuai,

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.

By the way, I did not receive your email in my Gmail inbox; I found your message on lore.org. The last email I received from you was on June 16, so I am not sure what the problem is. I also sent you an email mentioning that not using poolinfo makes rollback in raid1_reshape more difficult.
I wonder whether you received it, or maybe I missed your reply.

I am looking forward to your discussion. I want to gain a deeper understanding and contribute more to md/raid.

Thanks.






[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux