[dpdk-dev] [RFC 0/6] New sync modes for ring
mb at smartsharesystems.com
Wed Feb 26 17:53:18 CET 2020
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ananyev,
> > > > > More and more customers use(/try to use) DPDK based apps within
> > > > > overcommitted systems (multiple acttive threads over same
> pysical cores):
> > > > > VM, container deployments, etc.
> > > > > That makes current rte_ring implementation to perform
> > > > > really pure on some overcommited scenarios.
> > > >
> > > > Rather than reform rte_ring to fit this scenario, it would make
> > > > more sense to me to introduce another primitive.
> I don't see much advantages it will bring us.
> As a disadvantages, for developers and maintainers - code duplication,
> for end users - extra code churn and removed ability to mix and match
> different sync modes in one ring.
I strongly agree with Konstantin on this.
Please consider this discussion at a higher abstraction level:
As DPDK applications grow in number and popularity, people will deploy them in overcommitted systems. In this scenario, I consider it extremely unlikely that the user is able to dedicate N physical cores to N specific lcores of the M total lcores of the DPDK application. In the typical hypervisor scenario, the user will be able to assign a number of virtual CPUs to the virtual machine running the DPDK application, and these vCPUs will either be dedicated to the virtual machine or shared with other virtual machines.
DPDK is currently designed for dedicated CPUs only. If a user runs it on shared vCPUs, the user is violating an important DPDK precondition, and DPDK's behavior is undefined!
Adding the ability to run DPDK applications on shared vCPUs would be a great improvement.
I prefer that support for this is as painless as possible for the DPDK application developer.
Perhaps run-time detection during the EAL initialization could be a solution. The EAL would then configure relevant libraries to use the appropriate synchronization primitives.
Med venlig hilsen / kind regards
- Morten Brørup
More information about the dev