Re: [PATCH] xfrm: policy: Read seqcount outside of rcu-read side in xfrm_policy_lookup_bytype
From: Varad Gautam
Date: Fri May 28 2021 - 12:06:24 EST
On 5/28/21 5:11 PM, Ahmed S. Darwish wrote:
> On Fri, May 28, 2021, Varad Gautam wrote:
> ...
>>
>> Thead 1 (xfrm_hash_resize) Thread 2 (xfrm_policy_lookup_bytype)
>>
>> rcu_read_lock();
>> mutex_lock(&hash_resize_mutex);
>> read_seqcount_begin(&xfrm_policy_hash_generation);
>> mutex_lock(&hash_resize_mutex); // block
>> xfrm_bydst_resize();
>> synchronize_rcu(); // block
>> <RCU stalls in xfrm_policy_lookup_bytype>
>>
> ...
>> Fixes: a7c44247f70 ("xfrm: policy: make xfrm_policy_lookup_bytype lockless")
>
> Minor note: the 'Fixes' commit should be 77cc278f7b20 ("xfrm: policy:
> Use sequence counters with associated lock") instead.
>
> The reason read_seqcount_begin() is emitting a mutex_lock() on
> PREEMPT_RT is because of the s/seqcount_t/seqcount_mutex_t/ change.
>
Thanks, corrected it in v2.
> Kind regards,
>
> --
> Ahmed S. Darwish
> Linutronix GmbH
>
--
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5
90409 Nürnberg
Germany
HRB 36809, AG Nürnberg
Geschäftsführer: Felix Imendörffer