I noticed an anomaly in how receive interrupt control is done. In l3fwd-power there is a per-port lock around calls to enable interrupts but no locking around the call to disable interrupts. This looks broken since intr_disable requires multiple operations on some hardware.
There are three better options: 1) do locking in rte_eth_dev (not application) 2) push any necessary locking down into the driver 3) lock on both places in l3fwd-power (and other usages) I am thinking #1 is easiest solution. Which ever solution is done, the documentation should be as well.