> > 
> > How about updating as below to avoid lossing accuracy if new is less than 
> > 100?
> > 
> > return div_u64(new * (100 - LAST_AGE_WEIGHT), 100) +
> >             div_u64(old * LAST_AGE_WEIGHT, 100);
> > 
> > Thanks,
> > 
> 
> We want to avoid overflow by doing the division first. To keep the accuracy, 
> how
> about updating as below:
> 
>       res = div_u64_rem(new, 100, &rem_new) * (100 - LAST_AGE_WEIGHT)
>               + div_u64_rem(old, 100, &rem_old) * LAST_AGE_WEIGHT;
>       res += rem_new * (100 - LAST_AGE_WEIGHT) / 100 + rem_old * 
> LAST_AGE_WEIGHT / 100;
>       return res;
> 
> Thanks,
> 

Friendly ping

> > >   }
> > >   /* This returns a new age and allocated blocks in ei */


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to