Ping.
> -----Original Message----- > From: ext Ivan Khoronzhuk [mailto:ivan.khoronz...@linaro.org] > Sent: Tuesday, September 08, 2015 1:04 PM > To: Savolainen, Petri (Nokia - FI/Espoo); lng-odp@lists.linaro.org > Subject: Re: [lng-odp] [API-NEXT PATCH v2 1/5] api: cpu: added cpu > cycle count API > > > > On 08.09.15 11:31, Petri Savolainen wrote: > > Raw CPU cycle counts can be used to measure performance > > in CPU cycles. These functions will replace some usage of > > odp_time_cycles() of odp_time_diff_cycles(). > > > > Signed-off-by: Petri Savolainen <petri.savolai...@nokia.com> > > I'm only hesitate about 32bits, for sum & cmp, but it can be never > required. > And can be added any time. > > Reviewed-by: Ivan Khoronzhuk <ivan.khoronz...@linaro.org> > > > --- > > include/odp/api/cpu.h | 52 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > > > diff --git a/include/odp/api/cpu.h b/include/odp/api/cpu.h > > index c389093..50a7e3d 100644 > > --- a/include/odp/api/cpu.h > > +++ b/include/odp/api/cpu.h > > @@ -18,6 +18,8 @@ > > extern "C" { > > #endif > > > > +#include <odp/std_types.h> > > + > > /** @defgroup odp_cpu ODP CPU > > * @{ > > */ > > @@ -44,6 +46,56 @@ int odp_cpu_id(void); > > int odp_cpu_count(void); > > > > /** > > + * Current CPU cycle count > > + * > > + * Return current CPU cycle count. Cycle count may not be reset at > ODP init > > + * and thus may wrap back to zero between two calls. Use > odp_cpu_cycles_max() > > + * to read the maximum count value after which it wraps. Cycle count > frequency > > + * follows the CPU frequency and thus may change at any time. The > count may > > + * advance in steps larger than one. Use odp_cpu_cycles_resolution() > to read > > + * the step size. > > + * > > + * @note Do not use CPU count for time measurements since the > frequency may > > + * vary. > > + * > > + * @return Current CPU cycle count > > + */ > > +uint64_t odp_cpu_cycles(void); > > + > > +/** > > + * CPU cycle count difference > > + * > > + * Calculate difference between cycle counts c1 and c2. Parameter c1 > must be the > > + * first cycle count sample and c2 the second. The function handles > correctly > > + * single cycle count wrap between c1 and c2. > > + * > > + * @param c1 First cycle count > > + * @param c2 Second cycle count > > + * > > + * @return CPU cycles from c1 to c2 > > + */ > > +uint64_t odp_cpu_cycles_diff(uint64_t c1, uint64_t c2); > > + > > +/** > > + * Maximum CPU cycle count > > + * > > + * Maximum CPU cycle count value before it wraps back to zero. > > + * > > + * @return Maximum CPU cycle count value > > + */ > > +uint64_t odp_cpu_cycles_max(void); > > + > > +/** > > + * Resolution of CPU cycle count > > + * > > + * CPU cycle count may advance in steps larger than one. This > function returns > > + * resolution of odp_cpu_cycles() in CPU cycles. > > + * > > + * @return CPU cycle count resolution in CPU cycles > > + */ > > +uint64_t odp_cpu_cycles_resolution(void); > > + > > +/** > > * @} > > */ > > > > > > -- > Regards, > Ivan Khoronzhuk _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp