Re: [QUESTION] problems report: rcu_read_unlock_special() called in irq_exit() causes dead loop
From: Joel Fernandes
Date: Wed Jul 02 2025 - 13:24:45 EST
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!
- Joel