[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