[dpdk-dev] [PATCH v3] timer: add new rte_rdtsc_precise function

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Feb 26 10:39:56 CET 2014


19/02/2014 17:46, Didier Pallard:
> According to Intel Developer's Manual:
> 
> "The RDTSC instruction is not a serializing instruction. It does not
> necessarily wait until all previous instructions have been executed before
> reading the counter. Simi- larly, subsequent instructions may begin
> execution before the read operation is performed. If software requires
> RDTSC to be executed only after all previous instruc- tions have completed
> locally, it can either use RDTSCP (if the processor supports that
> instruction) or execute the sequence LFENCE;RDTSC."
> 
> So add a rte_rdtsc_precise function that do a memory barrier before rdtsc
> to synchronize operations and ensure that the TSC read is done at the
> expected place.
> 
> Signed-off-by: Didier Pallard <didier.pallard at 6wind.com>
> ---
> 
> Call rte_mb() and rte_rdtsc() rather than duplicating rte_rdtsc function.
> Use r/w memory barrier instead of lfence to serialize both load and stores.

Acked and applied.

Thanks to all
-- 
Thomas


More information about the dev mailing list