[Devel] [RFC PATCH vz9 v6 01/62] dm-ploop: md_pages map all pages at creation time

Alexander Atanasov alexander.atanasov at virtuozzo.com
Mon Dec 30 12:01:59 MSK 2024


On 30.12.24 10:54, Pavel Tikhomirov wrote:
> 
> 
> On 12/30/24 15:12, Alexander Atanasov wrote:
>> On 24.12.24 12:13, Pavel Tikhomirov wrote:
>>>
>>
>>
>> I'll reply here to all the comments.
>>
>> - kmap_atomic creates a temporary mapping on the current CPU only and 
>> we want to create permanent mappings for the pages.
>> - kmap_atomic is deprecated - we want to avoid it.
> 
> agreed
> 
>> - we want to use READ/WRITE_ONCE everywhere since we try to avoid 
>> taking locks. may be it is a good idea to move it to a different patch
> 
> So it looks like d_bat_entries, bat_entries and bat_levels can change 
> concurrently, thus we use, *_ONCE to keep them stable in one scope. OK.
> 
>> - this places are not atomic context but they are creating a non- 
>> preemptive one, that's the side effect of kmap_atomic. code is used 
>> when loading deltas, i.e. not performance critical
> 
> The function ploop_prepare_bat_update is always called under 
> spin_lock_irqsave(&ploop->bat_lock), that is atomic context, one can not 
> sleep there. So calling kmap looks invalid there.
> 

Ok, This needs to be fixed, agreed.


-- 
Regards,
Alexander Atanasov



More information about the Devel mailing list