Dear Nitin, Anybody is free to submit patch to gerrit.fd.io <http://gerrit.fd.io/> or to provide comments to any patch there.
Regards, Damjan > On 2 Jun 2018, at 03:11, Nitin Saxena <nitin.sax...@cavium.com> wrote: > > Hi Damjan, > > If VPP is an open-source project that supports multiple architectures, then > there should be a review of every commit which provides others using the open > source project an opportunity to raise their concerns. So my request is to > post changes for review before they are committed to ensure VPP stays true to > open-source philosophy. Please let me know if this is possible. If not, i'd > like to understand the reasons for it. > > Regards, > Nitin > > On 02-Jun-2018, at 00:17, Damjan Marion <dmar...@me.com > <mailto:dmar...@me.com>> wrote: > >> >> Dear Nitin, >> >> That doesn't work that way. >> >> Regards, >> >> Damjan >> >>> On 1 Jun 2018, at 19:41, Saxena, Nitin <nitin.sax...@cavium.com >>> <mailto:nitin.sax...@cavium.com>> wrote: >>> >>> Hi Damjan, >>> >>> Now that you are aware that Cavium is working on optimisations for ARM, >>> can I request that you check with us on implications for ARM(at least >>> Cavium), before bringing changes in dpdk-input? >>> >>> Regards, >>> Nitin >>> >>> On 01-Jun-2018, at 21:39, Damjan Marion <dmar...@me.com >>> <mailto:dmar...@me.com>> wrote: >>> >>>> >>>> Dear Nitin, >>>> >>>> I really don't have anything else to add. It your call how do you want to >>>> proceed.... >>>> >>>> Regards, >>>> >>>> Damjan >>>> >>>>> On 1 Jun 2018, at 18:02, Nitin Saxena <nitin.sax...@cavium.com >>>>> <mailto:nitin.sax...@cavium.com>> wrote: >>>>> >>>>> Hi Damjan, >>>>> >>>>> Answers Inline. >>>>> >>>>> Thanks, >>>>> Nitin >>>>> >>>>> On Friday 01 June 2018 08:49 PM, Damjan Marion wrote: >>>>>> Hi Nitin, >>>>>> inline... >>>>>>> On 1 Jun 2018, at 15:23, Nitin Saxena <nitin.sax...@cavium.com >>>>>>> <mailto:nitin.sax...@cavium.com>> wrote: >>>>>>> >>>>>>> Hi Damjan, >>>>>>> >>>>>>>> It was hard to know that you have subset of patches hidden somewhere. >>>>>>> I wouldn't say patches are hidden. We are trying to fine tune >>>>>>> dpdk-input initially from our end first and later we will seek your >>>>>>> expertise while upstreaming. >>>>>> for me they were hidden. >>>>>>>> Typically it makes sense to discuss such kind of changes with person >>>>>>>> >who "maintains" the code before starting writing the code. >>>>>>> Agreed. However we prefer to do internal analysis/POC first before >>>>>>> reaching out to MAINTAINERS. That way we can better understand code >>>>>>> review comments. >>>>>> Perfectly fine, but then don't put blame on us for not knowing that you >>>>>> are doing something internally... >>>>> The intention was not to blame anybody but to understand modular approach >>>>> in vpp to accommodate multi-arch(s). >>>>>>> >>>>>>>> Maybe, but sounds to me like we are still in guessing phase. >>>>>>> I wouldn't do any guess work with MAINTAINERS. >>>>>>> >>>>>>>> Maybe we even need different function for each ARM CPU core as they >>>>>>>> maybe have different memory subsystem and pipeline.... >>>>>>> This is what I am looking for. Is it ok to detect our hardware natively >>>>>>> from autoconf and append target specific macro to CFLAGS? And then >>>>>>> separate function for our target in dpdk/device/node.c? Sorry my >>>>>>> multi-arch select example was incorrect and that's not what I am >>>>>>> looking at. >>>>>> Here I will be able to help when I get reasonable understanding what is >>>>>> the "big" plan. >>>>> The "Big" plan is to optimize each vpp node for Aarch64. For now focus is >>>>> dpdk-input. >>>>>> I don't want that we end up in 6 months with cavium patches, nxp >>>>>> patches, marvell patches, and so on. >>>>> Is it a problem? If yes than I am not able to visualize it as the same >>>>> problem would exist for any architecture and not just for Aarch64. >>>>>>> >>>>>>>> Is there an agreement between ARM vendors what is the targeted core >>>>>>>> you want to have code tuned for or you are simply tuning to whatever >>>>>>>> core Cavium uses? >>>>>>> I am trying to optimize Cavium's SOC. This question is in this regard >>>>>>> only. However efforts are going on optimizing Cortex cores as well by >>>>>>> ARM community. >>>>>> What about agreeing on plan for optimising on all ARM cores, and then >>>>>> starting doing optimisation? >>>>> This is cross-company question so hard to answer but Cavium has the "big" >>>>> plan described above. >>>>>>> >>>>>>> Thanks, >>>>>>> Nitin >>>>>>> >>>>>>> On Friday 01 June 2018 01:55 AM, Damjan Marion wrote: >>>>>>>> inline... >>>>>>>> -- >>>>>>>> Damjan >>>>>>>>> On 31 May 2018, at 21:10, Saxena, Nitin <nitin.sax...@cavium.com >>>>>>>>> <mailto:nitin.sax...@cavium.com> <mailto:nitin.sax...@cavium.com >>>>>>>>> <mailto:nitin.sax...@cavium.com>>> wrote: >>>>>>>>> >>>>>>>>> Hi Damjan, >>>>>>>>> >>>>>>>>> Answers inline. >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Nitin >>>>>>>>> >>>>>>>>>> On 01-Jun-2018, at 12:15 AM, Damjan Marion <dmarion.li...@gmail.com >>>>>>>>>> <mailto:dmarion.li...@gmail.com> <mailto:dmarion.li...@gmail.com >>>>>>>>>> <mailto:dmarion.li...@gmail.com>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Dear Nitin, >>>>>>>>>> >>>>>>>>>> See inline…. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On 31 May 2018, at 19:59, Nitin Saxena <nitin.sax...@cavium.com >>>>>>>>>>> <mailto:nitin.sax...@cavium.com> <mailto:nitin.sax...@cavium.com >>>>>>>>>>> <mailto:nitin.sax...@cavium.com>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> I am working on optimising dpdk-input node (based on vpp v1804) for >>>>>>>>>>> our target. I am able to get performance improvements on our target >>>>>>>>>>> but the problem I am finding now are: >>>>>>>>>>> >>>>>>>>>>> 1) The dpdk-input code is completely changed on master branch from >>>>>>>>>>> v1804. >>>>>>>>>> >>>>>>>>>> Why is this a problem? It was done with reason and for tangible >>>>>>>>>> benefit. >>>>>>>>> This is a problem for me as I can not apply my v1804 changes directly >>>>>>>>> to the master branch. I have to again rework on master branch and >>>>>>>>> that’s why I am not able to move to master branch or v1807 in future. >>>>>>>> It was hard to know that you have subset of patches hidden somewhere. >>>>>>>> Typically it makes sense to discuss such kind of changes with person >>>>>>>> who "maintains" the code before starting writing the code. >>>>>>>>>> >>>>>>>>>>> Not to mention the dpdk-input master branch code do not give better >>>>>>>>>>> numbers on our target as compared to v1804 >>>>>>>>>> >>>>>>>>>> Sad to hear that, good thing is, it gives better numbers on x86. >>>>>>>>> As I understand one dpdk_device_input function cannot be same for all >>>>>>>>> architectures because if the underlying micro-architecture is >>>>>>>>> different, the hot spots changes. >>>>>>>> Maybe, but sounds to me like we are still in guessing phase. >>>>>>>> Maybe we even need different function for each ARM CPU core as they >>>>>>>> maybe have different memory subsystem and pipeline.... >>>>>>>> Is there an agreement between ARM vendors what is the targeted core >>>>>>>> you want to have code tuned for or you are simply tuning to whatever >>>>>>>> core Cavium uses? >>>>>>>>> I have seen dpdk-input master branch changes and on a positive notes >>>>>>>>> those changes make sense however some codes are tuned for x86 >>>>>>>>> specially Skylake. I was looking for some kind of way to have >>>>>>>>> mutiarch select function for the Rx path, like the way it’s done for >>>>>>>>> tx path. >>>>>>>> Not sure why do you need that, unless you are going to have code >>>>>>>> optimised for different CPU variants (i.e. Cortex-A53 and Cortex-A72) >>>>>>>> in the same binary. >>>>>>>>>> >>>>>>>>>>> 2) I don’t know the modular approach I should follow to merge my >>>>>>>>>>> changes as I have completely changed the quad loop handling and the >>>>>>>>>>> prefetches order in dpdk-input. >>>>>>>>>> >>>>>>>>>> I carefully tuned that code. It was multi day exercise and losing >>>>>>>>>> single clock/packet on x86 with additional modifications are not >>>>>>>>>> acceptable. Still I’m open for discussion how to address this >>>>>>>>>> problem. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Note: I am far away from upstreaming the code currently as my >>>>>>>>>>> optimisation is still in progress. It will be better if I know the >>>>>>>>>>> proper way of doing it. >>>>>>>>>> >>>>>>>>>> I suggest that you don’t even start on working on upstreaming before >>>>>>>>>> we have deep understanding of what and why needs to be done and we >>>>>>>>>> are all in agreement. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Nitin >>>>>>> >>>>>>> >>>>> >>>> >> > >