On Mon, 18 Oct 2021, Punit Agrawal wrote: > From: Punit Agrawal <punit1.agrawal@xxxxxxxxxxxxx> > > The cyclictest.py module recently gained the capability to parse max > latency values as reported by cyclictest. > > When the max latency exceeds the range of the latency histogram (or in > other words, the number of configured buckets), statistics such as > mean and standard deviation can not be calculated correctly due to > lost samples during measurement. > > In the case of lost samples, skip statistics generation and report the > max latency warning the user to rerun the measurement. > > Signed-off-by: Punit Agrawal <punit1.agrawal@xxxxxxxxxxxxx> > --- > rteval/modules/measurement/cyclictest.py | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py > index 50a734c75047..7a619dd1c852 100644 > --- a/rteval/modules/measurement/cyclictest.py > +++ b/rteval/modules/measurement/cyclictest.py > @@ -67,6 +67,9 @@ class RunData: > retval += "mean: %f\n" % self.__mean > return retval > > + def get_max(self): > + return self.__max > + > def update_max(self, value): > if value > self.__max: > self.__max = value > @@ -423,6 +426,13 @@ class Cyclictest(rtevalModulePrototype): > if abrt: > rep_n.addChild(abrt_n) > > + # Let the user know if max latency overshot the number of buckets > + if self.__cyclicdata["system"].get_max() > self.__buckets: > + self._log(Log.ERR, "Max latency(%dus) exceeded histogram range(%dus). Skipping statistics" % > + (self.__cyclicdata["system"].get_max(), self.__buckets)) > + self._log(Log.ERR, "Increase number of buckets to avoid lost samples") > + return rep_n > + > rep_n.addChild(self.__cyclicdata["system"].MakeReport()) > for thr in self.__cpus: > if str(thr) not in self.__cyclicdata: > -- > 2.33.0 > > Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>