Re: [Phishing Risk] [External] Re: [PATCH] blk-iocost: fix very large vtime when iocg activate

From: Tejun Heo
Date: Mon May 16 2022 - 21:03:11 EST


On Tue, May 17, 2022 at 08:57:55AM +0800, Chengming Zhou wrote:
> #define time_after64(a,b) \
> (typecheck(__u64, a) && \
> typecheck(__u64, b) && \
> ((__s64)((b) - (a)) < 0))
> #define time_before64(a,b) time_after64(b,a)
>
> I still don't get why my changes are wrong. :-)

It's a wrapping timestamp where a lower value doesn't necessarily mean
earlier. The before/after relationship is defined only in relation to each
other. Imagine a cirle representing the whole value range and picking two
spots in the circle, if one is in the clockwise half from the other, the
former is said to be earlier than the latter and vice-versa. vtime runs way
faster than nanosecs and wraps regularly, so we can't use absolute values to
compare before/after.

Thanks.

--
tejun