[ovs-dev] [PATCH RFC 5/5] dpif-netdev: Prefetch the cacheline having the cycle stats.
Bodireddy, Bhanuprakash
bhanuprakash.bodireddy at intel.com
Tue Dec 5 15:11:40 UTC 2017
>
>> Prefetch the cacheline having the cycle stats so that we can speed up
>> the cycles_count_start() and cycles_count_intermediate().
>
>Do you have any performance results?
I don’t have nos. for this patch alone. I was testing the overall throughput along with other patches (that were *not* part of this RFC series) to verify performance improvements. I will include in commit log when I do for individual patches.
BTW, I usually look at the % of total instructions getting retired, cycles spent in front and back-end for the functions to see if prefetching does improve/degrade performance.
- Bhanuprakash.
>
>>
>> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy at
>> intel.com>
>> ---
>> lib/dpif-netdev.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index
>> b74b5d7..ab13d83 100644
>> --- a/lib/dpif-netdev.c
>> +++ b/lib/dpif-netdev.c
>> @@ -576,7 +576,7 @@ struct dp_netdev_pmd_thread {
>> struct ovs_mutex flow_mutex;
>> /* 8 pad bytes. */
>> );
>> - PADDED_MEMBERS(CACHE_LINE_SIZE,
>> + PADDED_MEMBERS_CACHELINE_MARKER(CACHE_LINE_SIZE,
>cachelineC,
>> struct cmap flow_table OVS_GUARDED; /* Flow table. */
>>
>> /* One classifier per in_port polled by the pmd */ @@ -4082,6
>> +4082,7 @@ reload:
>> lc = UINT_MAX;
>> }
>>
>> + OVS_PREFETCH_CACHE(&pmd->cachelineC, OPCH_HTW);
>> cycles_count_start(pmd);
>> for (;;) {
>> for (i = 0; i < poll_cnt; i++) {
>> --
>> 2.4.11
More information about the dev
mailing list