Re: [PATCH 1/2] nohz: use seqlock to avoid race on idle time stats

From: Preeti U Murthy
Date: Tue Mar 25 2014 - 01:31:42 EST


On 03/24/2014 01:51 PM, Hidetoshi Seto wrote:
> (2014/03/24 16:45), Preeti Murthy wrote:
>> Hi Hidetoshi,
>>
>> The patch looks good to me except the comments around the monotonicity
>> of the return value of the idle stats observer. I am unable to relate them
>> to the dependency on nr_iowait_cpu.
>>
>> I see that when the reader queries for the idle stats and calls
>> get_cpu_idle_time_us(), the nr_iowait_cpu might be 0. When he later
>> queries get_cpu_iowait_time_us(), it may be >0 . Hence we will be
>> accounting for the idle time in both idle time and iowait time. This
>> is definitely a problem. But I do not understand what this has got to
>> do with the monotonicity of the time
>> returned. This is just for my understanding.
>
> Thank you for your comment!
>
> Ah yes, I think I could write better comments around here to clarify
> the monotonicity problem. (It will be happy if someone can give me
> such better sentence for here :-D)
>
> One important point is that readers do not update idle stats when they
> use these function. i.e.
>
> given:
> idle stats: idle=1000, iowait=100
> stamp at idle entry: entry=50
> nr tasks waiting io: nr_iowait=1
>
> 1st reader:
> query @ now=60
> idle=1000
> iowait=110 (=100+(60-50))
>
> (here nr_iowait changed to 0)
>
> 2nd reader:
> query @ now=70
> idle=1020 (=1000+(70-50))
> iowait=100
>
> So you will see iowait is decreased from 110 to 100.

Ah ok! I get it. Please do add my Reviewed-by to it.

>
> I hope this short story helps you.

Thanks!

Regards
Preeti U Murthy
>
> Thanks,
> H.Seto
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/