On 06/05/15 20:31, Neel Natu wrote: >>> - runs = 0; >>> >>- while (now >= state->nexthard) { >>> >>- state->nexthard += tick_sbt; >>> >>- runs++; >>> >>- } >>> >>- if (runs) { >>> >>+ runs = (now - state->nexthard) / tick_sbt; >>> >>+ if (runs > 0) { >>> >>+ printf("R%d ", (int)runs); >>> >>+ state->nexthard += tick_sbt * runs; >>> >> hct = DPCPU_PTR(hardclocktime); >>> >> *hct = state->nexthard - tick_sbt; >>> >> if (fake < 2) { > There is a difference in behavior in the two implementations when 'now > == state->nexthard'. In the loop-based implementation this would end > up with 'runs = 1' whereas in the division-based implementation it > would end up with 'runs = 0'. > > I am not sure if this is intentional or just an oversight. Hi Neel, The nexthard is mainly updated in this piece of code. We can assume that "state->nexthard" is aligned to "ticks_sbt". If "state->nexthard % ticks_sbt == 0", is that still an issue? --HPSReceived on Fri Jun 05 2015 - 16:52:46 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC