Just some more activity on this topic, after spending time going through the code a bit.
Zoltan Kiss <zoltan.k...@linaro.org> writes: > On 08/12/15 17:31, Gray, Mark D wrote: >> >> >>> -----Original Message----- >>> From: Ben Pfaff [mailto:b...@ovn.org] >>> Sent: Tuesday, December 8, 2015 4:50 PM >>> To: Gray, Mark D >>> Cc: Traynor, Kevin; dev@openvswitch.org >>> Subject: Re: [ovs-dev] [PATCH] INSTALL.DPDK.md: Clarify DPDK arguments. >>> >>> On Tue, Dec 08, 2015 at 04:41:37PM +0000, Gray, Mark D wrote: >>>>> -----Original Message----- >>>>> From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Kevin >>>>> Traynor >>>>> Sent: Monday, December 7, 2015 5:58 PM >>>>> To: dev@openvswitch.org >>>>> Subject: [ovs-dev] [PATCH] INSTALL.DPDK.md: Clarify DPDK arguments. >>>>> >>>>> Add some information about the DPDK -c and -n parameters. >>>>> >>>>> Signed-off-by: Kevin Traynor <kevin.tray...@intel.com> >>>>> Reported-by: Zoltan Kiss <zoltan.k...@linaro.org> >>>>> --- >>>>> INSTALL.DPDK.md | 14 ++++++++++++-- >>>>> 1 files changed, 12 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/INSTALL.DPDK.md b/INSTALL.DPDK.md index >>>>> 96b686c..ee016da >>>>> 100644 >>>>> --- a/INSTALL.DPDK.md >>>>> +++ b/INSTALL.DPDK.md >>>>> @@ -145,8 +145,18 @@ Using the DPDK with ovs-vswitchd: >>>>> >>>>> DPDK configuration arguments can be passed to vswitchd via `--dpdk` >>>>> argument. This needs to be first argument passed to vswitchd process. >>>>> - dpdk arg -c is ignored by ovs-dpdk, but it is a required parameter >>>>> - for dpdk initialization. >>>>> + The DPDK configuration arguments are passed to DPDK during DPDK >>>>> + initialization. >>>>> + >>>>> + The DPDK -c coremask is a required argument. To avoid wasted >>> resources >>>>> + only one core should be set. The standard OVS threads (e.g. main >>>>> + process, handler, revalidator) will run on the core that is specified. >>>> >>>> Might be worth mentioning that then there is a corresponding potential >>>> decrease in performance of revalidation and flow handling. >>> >>> With the kernel datapath, OVS sets up flows and revalidates them on >>> multiple cores. You're saying that with DPDK it only uses one core? >>> Why? >> >> In my opinion, the core mask should define the affinities of the other >> threads (main, process, handler, revalidator) and the pmd-cpu-mask > > That would sound good, but I'm afraid you can't really influence how > DPDK interprets the -c parameter. Maybe you can delegate the tasks of > the non-pmd threads to the lcore threads (via > rte_eal_[mp_]remote_launch() functions), but I'm not sure if its > viable. I'm not sure how good that sounds, really. From a reading of the code, the coremask here is used _solely_ for the EAL 'lcore' thread(s) which process EAL 'rpc' messages. There'd be a lot of intrusive conversion to integrate with DPDK in that space. I think it may be a good idea to rename it here from a generic "coremask," but as you indicate, we can't impose any additional semantics without getting everyone really confused. >> should define the affinities of the packet processing threads. However, >> I don't know if this was the intended behavior because the name is a little >> too generic ("core mask"). If this was the intended behavior, Kevin and I >> just did some tests, and it is not behaving like this. I think the behavior intention was to leave it as 'dpdk lcore only.' Maybe there's a better way of doing it that I don't see, though; otherwise you've kindof overloaded the dpdk argument with ovs argument as well. Sorry if that doesn't make sense. -Aaron _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev