On Wednesday 11 October 2017 10:47 AM, Shreyansh Jain wrote:
> On Tuesday 10 October 2017 10:25 PM, santosh wrote:
>>
>> On Tuesday 10 October 2017 09:47 PM, Thomas Monjalon wrote:
>>> 10/10/2017 16:05, santosh:
>>>> Hi Thomas,
>>>>
>>>> On Tuesday 10 October 2017 01:09 PM, Thomas Monjalon wrote:
>>>>> 10/10/2017 09:01, Shreyansh Jain:
>>>>>> Fixes: 5b22cf744689 ("bus/dpaa: introducing FMan configurations")
>>>>>> Fixes: 37f9b54bd3cf ("net/dpaa: support Tx and Rx queue setup")
>>>>> These lines should appear after the explanation.
>>>>>
>>>>>> Cc: [email protected]
>>>>>>
>>>>>> With the IOVA auto detection changes, bus scan is performed before
>>>>>> memory initialization. DPAA bus scan must not use rte_malloc in
>>>>>> its path.
>>>>> If the scan has been broken by IOVA detection, you should reference
>>>>> IOVA in Fixes line, not DPAA.
>>>>>
>>>> hmm.. IOVA not breaking scanning!, Refer this [1].
>>> It is breaking. A break is a behaviour or interface change.
>>> When moving init order, you break behaviour.
>>> I don't say it is bad.
>>> I say only it is the primary cause of this change.
>>
>> disagree!. Why so: Legacy PCI/bus scan implementation don't
>> use rte_ lib as they don;t need to.. Refer [1] for detailing.
>> However, dpaa is and that we agree to align with legacy.
>> So its a open question : Who fixes who?
>
> Just because PCI/bus-scan didn't use rte_malloc didn't mean that no one else
> can use it. For DPAA, the case was different and ideally I shouldn't have
> used
That means that Scan should do scan only. if not then programmer creating a
dependency like it was in past.
> rte_malloc. [1] was a discussion based on FSLMC and that was incorrect
> implementation.
>
yes But thread did address on _not_ keeping any rte_ memory dependency at scan
time.
> But, that is not a general case.
>
> If we go by pre-IOVA patch era:
>
> -> Subsystem A initialized
> -> Subsystem B initialized
> -> bus scan
> `-> implementation free to use all initialized subsystem
>
> post-IOVA era
>
>
> -> Subsystem A initialized
> -> bus scan
> `-> implementation free to use all initialized subsystem
> -> Subsystem B initialized
>
And that the problem with Pre-era that some platform implementation created a
dependency on
scan which wasn't necessary and that was blocking new infra.
> Essentially, it means IOVA made a change in the expected behavior of the
> implementation.
I disagree. IOVA asked to remove those dependency for those platform., If
PCI/BUS works w/o dependency
then why not fslmc that same we discussed in thread. You have created
a programming dependency in your platform code at scan time, which after
discussion agreed and
now this patch is removing that dependency.
Ideally, Like for other Patches hemant did: You should have blocked IOVA series
and let this patch and
other platform dependency patch merged before IOVA.. but that didn't happen
perhaps
lack of co-ordination.
> For case of DPAA, as that was still in development, it certainly can be said
> that it should have been fixed within dev cycle itself. That was the prime
> reason I used 'Fixes' to my own patches in v1 of this patch.
>
> But that said, I agree with what Thomas is saying. Fixes is only indicative
> of which patched changed the status-quo. And it helps maintainers know
> dependency tree. In this case, DPAA patches came *before* IOVA was added and
> hence the mistake in committed version came out *after* IOVA patches.
>
You should have blocked IOVA in that case, as said above like Hemant did for
one of his patch.
Anyways, I'm not objecting on Fixes: tags valid or not. Yes, from git point of
view it is correct
But from design point of view - I disagree.
>>
>>> The Fixes: line is also a help when backporting patches.
>>> This patch needs to be backported only if IOVA patch is also backported.
>>
>> IMO, would prefer backport: rather fixes: tag in above case, more verbose I
>> guess.
>>
>>>> We(me/hemant) has discussed about same on thread[1] and agreed to
>>>> do respective changes and remove rte_ memory dependency from code base
>>>> at scan time..
>>>>
>>>> Thanks.
>>>>
>>>> [1] http://dpdk.org/dev/patchwork/patch/26764/
>>> You already discussed about this issue, fine.
>>>
>>> Santosh, as you insist to talk again about it, one more comment:
>>>
>>> It is very good to have discussions on the mailing list.
>>
>> Thanks, That makes me think that I didn't break, indeed did what was needed
>> in agnostic way.
>
> Again, IOVA patch changes status quo, but that was a known fact and it was
> missed by DPAA patches. Now, for maintenance reasons, "Fixes" should actually
> be IOVA patch. I am not sure why you disagree with that.
>
Read above reason for disagreement.
>>
>>> It would be perfect if all these informations were explicitly given
>>> in the commit messages.
>>> For instance, saying that the scan cannot use rte_malloc anymore is
>>> a valuable tip for other developpers.
>>
>> Agree, but scan wasn;t using for PCI/bus case.. so one can;t be sure whether
>> to
>> mention or not..
>>