On 5/17/26 9:01 AM, Salem Sol wrote:
> Currently, OVS Userspace strictly pins PMD threads to specific cores. 
> In high-demand environments where customers fully utilize their CPUs, 
> having cores locked at 100% solely for PMD reduces the system's 
> ability to handle other workloads efficiently.
> 

Hi,

I'm looking for the motivation for the patch and I think there are a few
items being bundled together so it's worth separating to understand the
use case.

1. Cores with PMD threads being isolated from running other tasks

The only thing that stops Linux scheduling other tasks on cores where
PMD threads run is having those cores isolated on the system. This is
not an OVS setting, so there is no need to change anything OVS for this.

But isn't it a concern for you of extra latency or packet loss at high
rates that might be introduced to packets on your datapath by other
tasks running on those cores ?

2. PMD threads running on a single core

PMD threads are run on a single core. I'm not sure what the concern is
here. Moving them around cores a lot will impact core local OVS sw
caches, maybe some stats etc.

If you don't isolate the cores then Linux will presumably schedule other
items away from the core running the PMD thread that is at 100%. Yes,
it's true that Linux won't move the PMD thread itself but I'm not sure
that's a bad thing.

3. PMD threads running at 100% when they don't need to be

That is the default but also a user choice. There are pmd-sleep-*
options that will add some sleeps to reduce the load on a core in the
event of no or low packet rates etc. If you did want to schedule other
tasks on the core, then they could run.

4. Which cores the PMD threads can run on

That can be currently selected with pmd-cpu-mask, and there is already
consideration for NUMA when it comes to which rxqs those PMD thread can
poll. So if you want to say all the cores can be used to run PMD
threads, that can currently be done, just set the mask.

-

Is there some use case that is not covered by the above ?

How would you protect against latency/packet loss in the datapath by
scheduling other tasks on the same core as PMD threads or that is not a
concern for you ?

Seeing if there is something else running on the PMD thread core is
usually one of the first things to check if there is a latency or packet
loss issue.

thanks,
Kevin.

> Add an option to remove pmd pinning.
> 
> Salem Sol (1):
>   dpif-netdev: Add pmd-no-pin option for PMD affinity.
> 
>  lib/dpif-netdev.c    | 29 ++++++++++++++++++++++++++---
>  vswitchd/vswitch.xml | 14 ++++++++++++++
>  2 files changed, 40 insertions(+), 3 deletions(-)
> 

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to