[dpdk-dev] [PATCH v4 09/10] eal: add EAL argument for setting thread priority

Stephen Hemminger stephen at networkplumber.org
Sat Mar 27 17:04:52 CET 2021


On Fri, 26 Mar 2021 16:52:50 -0700
Narcisa Ana Maria Vasile <navasile at linux.microsoft.com> wrote:

> From: Narcisa Vasile <navasile at microsoft.com>
> 
> Allow the user to choose the thread priority through an EAL
> command line argument.
> 
> The user can select the thread priority to be either 'normal'
> or 'critical':
> --thread-prio normal
> --thread-prio realtime
> 
> Signed-off-by: Narcisa Vasile <navasile at microsoft.com>

Please don't add this. This will open up a huge set of bugs.
See the mailing list about how users report starvation and bug
checks on Windows when using real time.

In my experience, DPDK has same problem on Linux. The DPDK applications
(usually) poll at 100% CPU without system calls. If the user sets
these threads to real-time, then those threads have priority over kernel
background tasks (like handling soft interrupt or writing to the disk).
Therefore setting RT causes data loss or eventually RCU and watchdog
timeouts.

This patch encourages the fallacy that Real Time is faster.
The DPDK poll usage model is not compatible with the OS defintion
of real time. Real time is for processes doing system calls that
have precise timing requirements about when to wakeup from those
system calls.


More information about the dev mailing list