Dear dpdk dev,
I’m using dpdk 21.11 LTS, when compile my program with CPP flag “-std=c++20”, the compiler report below errors. After checking file rte_spinlock.h, I think the error report by compiler is valid, there should be a potential issue when using
functions rte_spinlock_recursive_lock, rte_spinlock_recursive_unlock and rte_spinlock_recursive_trylock in multi-thread, we could either remove “volatile” definition to ask users to handle the multi-thread issue, or using atomic operatings instead of self-increment
and self-decrement.
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:221:12: error: increment of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
slr->count++;
^
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:231:6: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
if (--(slr->count) == 0) {
^
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:255:12: error: increment of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
slr->count++;
BR,
Xiangyun Zhou
NPG SWE SWA
Intel Corporation |
intel.com