On Mon, Sep 02, 2013 at 03:07:45PM +0200, Frederic Weisbecker wrote:
> > Hope this may help.
> > I've added a silly check to make sure that `stime < rtime'
> > 
> > @@ -579,6 +582,10 @@ static void cputime_adjust(struct task_cputime *curr,
> >         if (total) {
> >                 stime = scale_stime((__force u64)stime,
> >                                     (__force u64)rtime, (__force u64)total);
> > +               if (stime > rtime) {
> > +                       printk(KERN_ERR "Ooops: stime:%llu rtime:%llu\n", 
> > stime, rtime);
> > +                       WARN_ON(1);
> > +               }
> >                 utime = rtime - stime;
> >         } else {
> >                 stime = rtime;
[snip]

> Thanks a lot Sergey for testing this further!
> 
> Interesting results, so rtime is always one or two units off stime after 
> scaling.
> Stanislaw made the scaling code with Linus and he has a better idea on the 
> math guts
> here.

I don't think this is scale issue, but rather at scale_stime() input
stime is already bigger then rtime. Sergey, could you verify that
by adding check before scale_stime() ?

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

Reply via email to