[Devel] [RFC PATCH vz9 v3 07/11] ploop: convert wait_list and wb_batch_llist to use lockless lists

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Thu Oct 24 11:09:44 MSK 2024



On 10/24/24 10:07, Alexander Atanasov wrote:
> On 24.10.24 11:04, Andrey Zhadchenko wrote:
>>
>>
>> On 10/21/24 12:13, Alexander Atanasov wrote:
> 
>>> @@ -775,7 +775,6 @@ static void 
>>> ploop_advance_local_after_bat_wb(struct ploop *ploop,
>>>           i = PLOOP_MAP_OFFSET;
>>>       dst_clu = piwb->kmpage;
>>> -    write_lock_irqsave(&ploop->bat_rwlock, flags);
>>
>> This unfrotunately won't do, since on discard we do in cycle
>> ploop_piwb_discard_completed()->ploop_release_cluster()->lockdep_assert_held(&ploop->bat_rwlock);
>> I will rework this place anyway though.
>>
> 
> I see there is an lockdep_assert_held but did you figure out exactly 
> what is protecting the lock there?
> 

Current code tries to protect BAT pages against concurrent modifications 
(namely IO against user-initiated commands like flip delta, etc) with 
bat_rwlock


More information about the Devel mailing list