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> 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> 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>> 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>> wrote:
>>>>>> 
>>>>>> 
>>>>>> Dear Nitin,
>>>>>> 
>>>>>> See inline….
>>>>>> 
>>>>>> 
>>>>>>> On 31 May 2018, at 19:59, Nitin Saxena <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
>>> 
>>> 
> 
> 

Reply via email to