[dpdk-dev] [PATCH 2/2] net/mlx5: don't map doorbell register to write combining
Shahaf Shuler
shahafs at mellanox.com
Wed Aug 23 13:58:07 CEST 2017
Wednesday, August 23, 2017 2:04 PM, Ferruh Yigit:
> On 8/21/2017 8:47 AM, Sagi Grimberg wrote:
> > From: Shahaf Shuler <shahafs at mellanox.com>
> >
> > By default, Verbs maps the doorbell register to write combining.
> > Working with write combining is useful for drivers which use blue
> > flame for the doorbell write.
> >
> > Since mlx5 PMD uses only doorbells and write combining mapping
> > requires an extra memory barrier to flush the doorbell after its
> > write, setting the mapping to un-cached by default.
> >
> > Such change is reduces the max and average round trip latency
> > significantly.
> >
> > Reported-by: Alexander Solganik <solganik at gmail.com>
> > Signed-off-by: Shahaf Shuler <shahafs at mellanox.com>
> > Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
> > Signed-off-by: Alexander Solganik <solganik at gmail.com>
> > Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> > ---
> > drivers/net/mlx5/mlx5.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index
> > b7e5046325c0..4c2a0b9652e3 100644
> > --- a/drivers/net/mlx5/mlx5.c
> > +++ b/drivers/net/mlx5/mlx5.c
> > @@ -920,6 +920,8 @@ rte_mlx5_pmd_init(void)
> > * using this PMD, which is not supported in forked processes.
> > */
> > setenv("RDMAV_HUGEPAGES_SAFE", "1", 1);
> > + /* Don't map UAR to WC if BlueFlame is not used.*/
> > + setenv("MLX5_SHUT_UP_BF", "1", 1);
Even if it is not clean, this is the only way to toggle the BF mapping mode on libmlx5/rdma-core.
We will try to propose changes on those libs to expose a proper API, in the meanwhile we have no other way.
>
> Although technically this is possible, I wonder how good idea it is a driver
> communicating with other processes via system environment variable?
>
> > ibv_fork_init();
> > rte_pci_register(&mlx5_driver);
> > }
> >
More information about the dev
mailing list