[dpdk-dev] [PATCH v7] eal: add manual probing option

Gaëtan Rivet grive at u256.net
Mon Jun 26 18:12:20 CEST 2023


On Wed, Jun 14, 2023, at 21:33, Stephen Hemminger wrote:
> On Thu, 23 Jan 2020 10:58:13 +0100
> Gaetan Rivet <grive at u256.net> wrote:
>
>> Add a new EAL option enabling manual probing in the EAL.
>> This command line option will configure the EAL so that buses
>> will not trigger their probe step on their own.
>> 
>> Applications are then expected to hotplug devices as they see fit.
>> 
>> Devices declared on the command line by the user (using -w and --vdev),
>> will be probed using the hotplug API, in the order they are declared.
>> 
>> This has the effect of offering a way for users to control probe order
>> of their devices, for drivers requiring it.
>> 
>> Signed-off-by: Gaetan Rivet <grive at u256.net>
>> Acked-by : Vamsi Attunuru <vattunuru at marvell.com>
>> Tested-by: Vamsi Attunuru <vattunuru at marvell.com>
>> Reviewed-by: Jerin Jacob <jerinj at marvell.com>
>> ---
>> 
>>  haven't heard many opinions on the matter, please shout if you see an issue
>> with this approach.
>> 
>> @Slava: I have tested rather quickly that it does not break anything,
>>         and that it works as intended for basic cases.
>>         Can you test it further for your use-case and tell me if it works fine?
>> 
>> Beyond the obvious difference between both probe mode, something to keep in mind:
>> while using -w on invalid devices would not block (PCI) bus probing, it will stop manual
>> probing in its track. All devices need to exist and be valid device IDs.
>> 
>> v2: fixed a few typos, map file (and used Travis to validate).
>> 
>>     Slava, are you able to test this patch?
>> 
>> v3: properly fixed the map file (inherited 19.08 instead of 19.05).
>> 
>>     Added a function to set the probe manual from the application,
>>     without having the user do it from the command line.
>> 
>>     Stopped spamming Slava about it, Vamsi was actually the one interested in it!
>> 
>> Standing issue worth chiming in:
>> 
>>   Currently manual-probe will cut off probing from all buses.
>>   It could be interesting to be able to only cut buses supporting hotplug,
>>   given that they are the one able to probe devices afterward.
>> 
>>   No real use-case for this right now, so leaving as-is. Might be worth
>>   considering in the future.
>> 
>> v4: Rebased on master,
>>     Moved implementation in common EAL,
>>     Used public API within the EAL to set the option,
>>     Made the API experimental
>> 
>> v5: added note in the Getting Started Guide.
>> 
>> v6: Rebased on master
>> 
>>     see http://mails.dpdk.org/archives/dev/2020-January/154178.html
>>     for reference to this version, linking v7 to v5 thread.
>> 
>> v7: Updated author and SoB.
>> 
>>  doc/guides/linux_gsg/eal_args.include.rst  | 13 ++++++
>>  doc/guides/rel_notes/release_20_02.rst     |  9 ++++
>>  lib/librte_eal/common/eal_common_bus.c     |  6 +++
>>  lib/librte_eal/common/eal_common_dev.c     | 54 ++++++++++++++++++++++
>>  lib/librte_eal/common/eal_common_options.c |  8 ++++
>>  lib/librte_eal/common/eal_internal_cfg.h   |  1 +
>>  lib/librte_eal/common/eal_options.h        |  2 +
>>  lib/librte_eal/common/eal_private.h        |  9 ++++
>>  lib/librte_eal/common/include/rte_eal.h    | 36 +++++++++++++++
>>  lib/librte_eal/rte_eal_version.map         |  4 ++
>>  10 files changed, 142 insertions(+)
>
> This patch seems to have been held in limbo for 3 years.
>
> For me, it is ok, but concerned that it opens up a whole scenario of possible
> usages that may not be tested, and probably don't work. Testing all the possible
> combinations of probe ordering is a geometric problem.
>
> So if user submits bug then the response would have to be:
>   Manual probing is an experimental option which may not work.

Hello Stephen,

I am not pushing for this series anymore.
I wrote it to help other people, I guess they used another way since.
If someone needs it, I can take a moment to reanimate it.

I'm still using the PCI bus hack to force manual probing, as well as port hotplug to control strict ordering. I guess at this point this is the stable way of working with DPDK, instead of a proper documented option.

Best regards,
-- 
Gaetan Rivet


More information about the dev mailing list