On 1/16/2024 3:55 PM, Johannes Thumshirn wrote: > On 16.01.24 10:52, Kanchan Joshi wrote: >>> + if (!plug) >>> + return ktime_get_ns(); >>> + if (!(plug->cur_ktime & 1ULL)) { >>> + plug->cur_ktime = ktime_get_ns(); >>> + plug->cur_ktime |= 1ULL; >>> + } >>> + return plug->cur_ktime; >> >> I did not understand the relevance of 1ULL here. >> If ktime_get_ns() returns even value, it will turn that into an odd >> value before caching. And that value will be returned for the subsequent >> calls. >> But how is that better compared to just caching whatever ktime_get_ns() >> returned. >> >> > > IIUC it's an indicator if plug->cur_ktime has been set or not. > But I don't understand why we can't compare with 0? Yes, that's what I meant by 'just caching whatever ktime_get_ns() returned'. if (!plug->cur_ktime) plug->cur_ktime = ktime_get_ns(); An indicator should not alter the return (unless there is a reason).