Re: [QUESTION] problems report: rcu_read_unlock_special() called in irq_exit() causes dead loop

From: Xiongfeng Wang
Date: Wed Jul 02 2025 - 21:04:48 EST




On 2025/7/3 1:24, Joel Fernandes wrote:
>
>
> On 7/2/2025 6:59 AM, Joel Fernandes wrote:
>>
>>
>> On 7/2/2025 5:14 AM, Qi Xi wrote:
>>> Hi Joel,
>>>
>>> After applying the 2 patches, the problem still exists. Compared to the previous
>>> fixes which did solve the problem, the difference is ct_in_irq() in the first
>>> patch.
>>>
>>> I am wondering why "nesting != CT_NESTING_IRQ_NONIDLE" is added?
>>>
>>>
>>> (previous fix: problem is solved)
>>>
>>> +bool ct_in_irq(void)
>>> +{
>>> +    return ct_nmi_nesting() != 0;
>>> +}
>>>
>>> (current fix: problem still exists)
>>>
>>> +bool ct_in_irq(void)
>>> +{
>>> +    long nesting = ct_nmi_nesting();
>>> +
>>> +    return (nesting && nesting != CT_NESTING_IRQ_NONIDLE);
>>> +}
>>
>> Oh gosh, thanks for spotting that! Indeed, I had changed it to != 0 in the last
>> version but applied an older patch. I will fix it in the tree. Thank you again!
>>
>> Neeraj, would you like this as a separate commit that you can then squash? Or
>> could you fix it up in your tree?
>>
> Qi, Xiongfeng, I am currently working on alternative fix after discussing with
> the crew. I will keep you posted with the fix, and would it to be good to get
> your testing on it once I have it (hopefully in couple of days), thanks for the
> report!

Sure, we are glad to help test once we get the fix patch.

Thanks,
Xiongfeng

>
> - Joel
>
> .
>