> > > > > > I tested on an arm64 HW. The former section is without the > > patch(20.02) and later one with this patch. > > I agree with Konstantin that getting more platform tests will be good > > early so that we can focus on the approach > > to avoid back and forth latter. > > > > > > RTE>>ring_perf_autotest // without path > > > > ### Testing single element enq/deq ### > > legacy APIs: SP/SC: single: 289.78 > > legacy APIs: MP/MC: single: 516.20 > > > > ### Testing burst enq/deq ### > > legacy APIs: SP/SC: burst (size: 8): 312.88 > > legacy APIs: SP/SC: burst (size: 32): 426.72 > > legacy APIs: MP/MC: burst (size: 8): 510.95 > > legacy APIs: MP/MC: burst (size: 32): 702.01 > > > > ### Testing bulk enq/deq ### > > legacy APIs: SP/SC: bulk (size: 8): 306.74 > > legacy APIs: SP/SC: bulk (size: 32): 411.56 > > legacy APIs: MP/MC: bulk (size: 8): 501.32 > > legacy APIs: MP/MC: bulk (size: 32): 693.07 > > > > ### Testing empty bulk deq ### > > legacy APIs: SP/SC: bulk (size: 8): 7.00 > > legacy APIs: MP/MC: bulk (size: 8): 7.00 > > > > ### Testing using two physical cores ### > > legacy APIs: SP/SC: bulk (size: 8): 74.36 > > legacy APIs: MP/MC: bulk (size: 8): 110.18 > > legacy APIs: SP/SC: bulk (size: 32): 23.04 > > legacy APIs: MP/MC: bulk (size: 32): 32.29 > > > > ### Testing using all slave nodes ## > > Bulk enq/dequeue count on size 8 > > Core [8] count = 293741 > > Core [9] count = 293741 > > Total count (size: 8): 587482 > > > > Bulk enq/dequeue count on size 32 > > Core [8] count = 244909 > > Core [9] count = 244909 > > Total count (size: 32): 1077300 > > > > ### Testing single element enq/deq ### > > elem APIs: element size 16B: SP/SC: single: 255.37 > > elem APIs: element size 16B: MP/MC: single: 456.68 > > > > ### Testing burst enq/deq ### > > elem APIs: element size 16B: SP/SC: burst (size: 8): 291.99 > > elem APIs: element size 16B: SP/SC: burst (size: 32): 456.25 > > elem APIs: element size 16B: MP/MC: burst (size: 8): 497.77 > > elem APIs: element size 16B: MP/MC: burst (size: 32): 680.87 > > > > ### Testing bulk enq/deq ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 284.40 > > elem APIs: element size 16B: SP/SC: bulk (size: 32): 453.17 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 485.77 > > elem APIs: element size 16B: MP/MC: bulk (size: 32): 675.08 > > > > ### Testing empty bulk deq ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 8.00 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 7.00 > > > > ### Testing using two physical cores ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 74.45 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 105.91 > > elem APIs: element size 16B: SP/SC: bulk (size: 32): 22.92 > > elem APIs: element size 16B: MP/MC: bulk (size: 32): 31.55 > > > > ### Testing using all slave nodes ### > > > > Bulk enq/dequeue count on size 8 > > Core [8] count = 308724 > > Core [9] count = 308723 > > Total count (size: 8): 617447 > > > > Bulk enq/dequeue count on size 32 > > Core [8] count = 214269 > > Core [9] count = 214269 > > Total count (size: 32): 1045985 > > > > RTE>>ring_perf_autotest // with patch > > > > ### Testing single element enq/deq ### > > legacy APIs: SP/SC: single: 289.78 > > legacy APIs: MP/MC: single: 475.76 > > > > ### Testing burst enq/deq ### > > legacy APIs: SP/SC: burst (size: 8): 323.91 > > legacy APIs: SP/SC: burst (size: 32): 424.60 > > legacy APIs: MP/MC: burst (size: 8): 523.00 > > legacy APIs: MP/MC: burst (size: 32): 717.09 > > > > ### Testing bulk enq/deq ### > > legacy APIs: SP/SC: bulk (size: 8): 317.74 > > legacy APIs: SP/SC: bulk (size: 32): 413.57 > > legacy APIs: MP/MC: bulk (size: 8): 512.89 > > legacy APIs: MP/MC: bulk (size: 32): 712.45 > > > > ### Testing empty bulk deq ### > > legacy APIs: SP/SC: bulk (size: 8): 7.00 > > legacy APIs: MP/MC: bulk (size: 8): 7.00 > > > > ### Testing using two physical cores ### > > legacy APIs: SP/SC: bulk (size: 8): 74.82 > > legacy APIs: MP/MC: bulk (size: 8): 96.45 > > legacy APIs: SP/SC: bulk (size: 32): 22.97 > > legacy APIs: MP/MC: bulk (size: 32): 32.52 > > > > ### Testing using all slave nodes ### > > > > Bulk enq/dequeue count on size 8 > > Core [8] count = 283928 > > Core [9] count = 283927 > > Total count (size: 8): 567855 > > > > Bulk enq/dequeue count on size 32 > > Core [8] count = 223916 > > Core [9] count = 223915 > > Total count (size: 32): 1015686 > > > > ### Testing single element enq/deq ### > > elem APIs: element size 16B: SP/SC: single: 267.65 > > elem APIs: element size 16B: MP/MC: single: 439.06 > > > > ### Testing burst enq/deq ### > > elem APIs: element size 16B: SP/SC: burst (size: 8): 302.44 > > elem APIs: element size 16B: SP/SC: burst (size: 32): 466.31 > > elem APIs: element size 16B: MP/MC: burst (size: 8): 502.51 > > elem APIs: element size 16B: MP/MC: burst (size: 32): 695.81 > > > > ### Testing bulk enq/deq ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 295.15 > > elem APIs: element size 16B: SP/SC: bulk (size: 32): 462.77 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 496.89 > > elem APIs: element size 16B: MP/MC: bulk (size: 32): 690.46 > > > > ### Testing empty bulk deq ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 7.50 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 7.44 > > > > ### Testing using two physical cores ### > > elem APIs: element size 16B: SP/SC: bulk (size: 8): 65.85 > > elem APIs: element size 16B: MP/MC: bulk (size: 8): 103.80 > > elem APIs: element size 16B: SP/SC: bulk (size: 32): 23.27 > > elem APIs: element size 16B: MP/MC: bulk (size: 32): 31.17 > > > > ### Testing using all slave nodes ### > > > > Bulk enq/dequeue count on size 8 > > Core [8] count = 304223 > > Core [9] count = 304221 > > Total count (size: 8): 608444 > > > > Bulk enq/dequeue count on size 32 > > Core [8] count = 214856 > > Core [9] count = 214855 > > Total count (size: 32): 1038155 > > Test OK > > RTE>>quit > > > > > > Encountered a couple of different build errors with these patches on my > Power 9 system: > > In file included from ../lib/librte_ring/rte_ring.h:534, > from ../drivers/mempool/ring/rte_mempool_ring.c:9: > ../lib/librte_ring/rte_ring_hts_generic.h: In function > ‘__rte_ring_hts_update_tail’: > ../lib/librte_ring/rte_ring_hts_generic.h:61:2: warning: implicit > declaration of function ‘RTE_ASSERT’; did you mean ‘RTE_STR’? > [-Wimplicit-function-declaration] > RTE_ASSERT(n >= num); > ^~~~~~~~~~ > RTE_STR > > Fixed by adding "#include <rte_debug.h>" to rte_ring.h. > > Also encountered: > > In file included from ../app/test/test_ring_hts_stress.c:5: > ../app/test/test_ring_stress.h: In function ‘check_updt_elem’: > ../app/test/test_ring_stress.h:162:9: error: unknown type name > ‘rte_spinlock_t’ > static rte_spinlock_t dump_lock; > ^~~~~~~~~~~~~~ > ../app/test/test_ring_stress.h:166:4: warning: implicit declaration of > function ‘rte_spinlock_lock’; did you mean ‘rte_calloc_socket’? > [-Wimplicit-function-declaration] > rte_spinlock_lock(&dump_lock); > ^~~~~~~~~~~~~~~~~ > rte_calloc_socket > ../app/test/test_ring_stress.h:166:4: warning: nested extern declaration > of ‘rte_spinlock_lock’ [-Wnested-externs] > ../app/test/test_ring_stress.h:172:4: warning: implicit declaration of > function ‘rte_spinlock_unlock’; did you mean ‘pthread_rwlock_unlock’? > [-Wimplicit-function-declaration] > rte_spinlock_unlock(&dump_lock); > ^~~~~~~~~~~~~~~~~~~ > pthread_rwlock_unlock > ../app/test/test_ring_stress.h:172:4: warning: nested extern declaration > of ‘rte_spinlock_unlock’ [-Wnested-externs] > > Fixed by adding "#include <rte_spinlock.h>" to test_ring_stress.h.
Thanks a lot for trying it guys. About compilation issues - will to address it in V1. Konstantin