Re: /proc/diskstats buglet

2014-08-30 Thread Alexey Dobriyan
On Tue, Aug 26, 2014 at 09:01:28AM -0600, Jens Axboe wrote: > On 08/26/2014 09:00 AM, Alexey Dobriyan wrote: > > On Tue, Aug 26, 2014 at 5:55 PM, Jens Axboe wrote: > >> On 08/26/2014 08:47 AM, Alexey Dobriyan wrote: > >>> Found and reproduced some time ago, almost forgot about :-) > >>> > >>> In p

Re: /proc/diskstats buglet

2014-08-26 Thread Jens Axboe
On 08/26/2014 09:00 AM, Alexey Dobriyan wrote: > On Tue, Aug 26, 2014 at 5:55 PM, Jens Axboe wrote: >> On 08/26/2014 08:47 AM, Alexey Dobriyan wrote: >>> Found and reproduced some time ago, almost forgot about :-) >>> >>> In part_round_stats_single(), ->stamp field is written but without >>> locki

Re: /proc/diskstats buglet

2014-08-26 Thread Alexey Dobriyan
On Tue, Aug 26, 2014 at 5:55 PM, Jens Axboe wrote: > On 08/26/2014 08:47 AM, Alexey Dobriyan wrote: >> Found and reproduced some time ago, almost forgot about :-) >> >> In part_round_stats_single(), ->stamp field is written but without >> locking SMP-wise. >> >> part->stamp = now; >> >> So, if

Re: /proc/diskstats buglet

2014-08-26 Thread Jens Axboe
On 08/26/2014 08:47 AM, Alexey Dobriyan wrote: > Found and reproduced some time ago, almost forgot about :-) > > In part_round_stats_single(), ->stamp field is written but without > locking SMP-wise. > > part->stamp = now; > > So, if two processes read /proc/diskstats, it is possible for "no

/proc/diskstats buglet

2014-08-26 Thread Alexey Dobriyan
Found and reproduced some time ago, almost forgot about :-) In part_round_stats_single(), ->stamp field is written but without locking SMP-wise. part->stamp = now; So, if two processes read /proc/diskstats, it is possible for "now - part->stamp" value to become negative. And indeed this can