From e3edcb266be520391c9e044f9dcc37dbcf80b8fd Mon Sep 17 00:00:00 2001 From: Jaganathan Palanisamy Date: Mon, 19 Dec 2016 10:08:41 -0500 Subject: [PATCH] Configure DPDK options to isolate PMD cores and ovs process cores The parameter -l in DPDK_OPTIONS is applied to both list cores to be used by PMD and the list of cores that all the OVS threads should run on. This will impact the DPDK performance, as cores on which PMD are running, should be completely isolated (no other process should) use it. For this, we are configuring, -l option with list of host cpus and the list PMD cores will be configured using ovs-vsctl config command. Depends-On: Ib95281bcbde34c18d26ee11d4e2603b267db563b Change-Id: Ie8e2939abfd3447b2fc028a78fd2f2e9c2d8d5b5 Fixes-Bug: #1649836 --- puppet/services/neutron-ovs-dpdk-agent.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/puppet/services/neutron-ovs-dpdk-agent.yaml b/puppet/services/neutron-ovs-dpdk-agent.yaml index fdfa1c037e..5c86101288 100644 --- a/puppet/services/neutron-ovs-dpdk-agent.yaml +++ b/puppet/services/neutron-ovs-dpdk-agent.yaml @@ -18,6 +18,11 @@ parameters: description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json + HostCpusList: + description: List of cores to be used for host process + type: string + constraints: + - allowed_pattern: "'[0-9,-]+'" NeutronDpdkCoreList: description: List of cores to be used for DPDK Poll Mode Driver type: string @@ -68,7 +73,8 @@ outputs: - neutron::agents::ml2::ovs::enable_dpdk: true neutron::agents::ml2::ovs::datapath_type: {get_param: NeutronDatapathType} neutron::agents::ml2::ovs::vhostuser_socket_dir: {get_param: NeutronVhostuserSocketDir} - vswitch::dpdk::core_list: {get_param: NeutronDpdkCoreList} + vswitch::dpdk::host_core_list: {get_param: HostCpusList} + vswitch::dpdk::pmd_core_list: {get_param: NeutronDpdkCoreList} vswitch::dpdk::memory_channels: {get_param: NeutronDpdkMemoryChannels} vswitch::dpdk::socket_mem: {get_param: NeutronDpdkSocketMemory} vswitch::dpdk::driver_type: {get_param: NeutronDpdkDriverType}