[dpdk-dev] [PATCH v9 1/2] eal: fix race-condition in pri/sec proc startup

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Wed Mar 9 15:27:44 CET 2016


On 09/03/2016 13:37, Harry van Haaren wrote:
> This patch fixes a race-condition when a primary and
> secondary process simultaneously probe PCI devices.
>
> This is implemented by moving the rte_eal_mcfg_complete()
> function call in rte_eal_init() until after rte_eal_pci_probe().
> The memory mapping of PCI device in the secondary process *must*
> happen after the primary has finished doing the mapping as it
> relies on information written by the primary.
>
> The end result is that the secondary process waits longer,
> until the primary has completed its PCI probing, and then
> notifies the secondary process.
>
> This race-condition became visible during the development of
> a function that allows a secondary process to be polling until
> a primary process exists. The secondary would then probe PCI
> devices at the same time, causing an error during rte_eal_init()
>
> Linux EAL:
> Fixes: 916e4f4f4e45 ("memory: fix for multi process support")
>
> BSD EAL:
> Fixes: 764bf26873b9 ("add FreeBSD support")
>
> Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>
> ---
>

Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>



More information about the dev mailing list