On 2021/5/6 16:08, Thomas Monjalon wrote:
> 06/05/2021 04:06, Chengchang Tang:
>>
>> On 2021/5/6 5:37, Thomas Monjalon wrote:
>>> 15/04/2021 09:12, Min Hu (Connor):
>>>> From: Chengchang Tang <tangchengch...@huawei.com>
>>>>
>>>> Timer sample example assumes that the frequency of the timer is about
>>>> 2Ghz to control the period of calling rte_timer_manage(). But this
>>>> assumption is easy to fail. For example. the frequency of tsc on ARM64
>>>> is much less than 2Ghz.
>>>>
>>>> This patch uses the frequency of the current timer to calculate the
>>>> correct time interval to ensure consistent result on all platforms.
>>>>
>>>> In addition, the rte_rdtsc() is replaced with the more recommended
>>>> rte_get_timer_cycles function in this patch.
>>>>
>>>> Fixes: af75078fece3 ("first public release")
>>>> Cc: sta...@dpdk.org
>>>>
>>>> Signed-off-by: Chengchang Tang <tangchengch...@huawei.com>
>>>> Signed-off-by: Min Hu (Connor) <humi...@huawei.com>
>>> [...]
>>>> /*
>>>> - * Call the timer handler on each core: as we don't
>>>> - * need a very precise timer, so only call
>>>> - * rte_timer_manage() every ~10ms (at 2Ghz). In a real
>>>> - * application, this will enhance performances as
>>>> - * reading the HPET timer is not efficient.
>>>> + * Call the timer handler on each core: as we don't need a
>>>> + * very precise timer, so only call rte_timer_manage()
>>>> + * every ~10ms. since rte_eal_hpet_init() has not been
>>>> + * called, the rte_rdtsc() will be used at runtime.
>>>
>>> I don't understand this last sentence.
>>>
>>
>> This is explaining why we can use rte_get_timer_cycles() instead of
>> rte_rdtsc().
>> In this example, we call tsc to improve its performance. So, we invoked
>> rte_rdtsc()
>> here. Now the function rte_get_timer_cycles() encapsulates these counters.
>> It will
>> invoke the corresponding counter according to the user's initialization of
>> the counter.
>
> That's very confusing. Better to drop.
>
OK, I will remove this sentence in the next version.
>>
>>>> + * In a real application, this will enhance performances
>>>> + * as reading the HPET timer is not efficient.
>>>> */
>>>> - cur_tsc = rte_rdtsc();
>>>> + cur_tsc = rte_get_timer_cycles();
>
>
>
>
> .
>