numam-dpdk/doc/guides
Viacheslav Ovsiienko 8409a28573 net/mlx5: control transmit doorbell register mapping
The rdma core library can map doorbell register in two ways,
depending on the environment variable "MLX5_SHUT_UP_BF":

  - as regular cached memory, the variable is either missing or
    set to zero. This type of mapping may cause the significant
    doorbell register writing latency and requires explicit
    memory write barrier to mitigate this issue and prevent
    write combining.

  - as non-cached memory, the variable is present and set to
    not "0" value. This type of mapping may cause performance
    impact under heavy loading conditions but the explicit write
    memory barrier is not required and it may improve core
    performance.

The new devarg is introduced "tx_db_nc", if this parameter is
set to zero, the doorbell register is forced to be mapped to
cached memory and requires explicit memory barrier after
writing to. If "tx_db_nc" is set to non-zero value the doorbell
will be mapped as non-cached memory, not requiring the memory
barrier. If "tx_db_nc" is missing the behaviour will be defined
by presence of "MLX5_SHUT_UP_BF" in environment. If variable
is missed the default value zero will be set for ARM64 hosts
and one for others.

In run time the code checks the mapping type and provides the
memory barrier after writing to tx doorbell register if it is
needed. The mapping type is extracted directly from the
uar_mmap_offset field in the queue properties.

Fixes: 18a1c20044 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2019-11-11 14:23:02 +01:00
..
bbdevs baseband/fpga_lte_fec: align naming to other bbdevs 2019-10-09 11:50:12 +02:00
compressdevs compress/qat: add stateful decompression 2019-10-09 11:50:12 +02:00
contributing lib: annotate versioned functions 2019-11-08 15:15:30 +01:00
cryptodevs crypto/aesni_gcm: support in-place chained mbufs 2019-11-08 13:51:16 +01:00
eventdevs doc: bump supported SDK and firmware version for DPAA2 2019-11-06 22:00:50 +01:00
faq
freebsd_gsg doc: advise patching third party dependencies 2019-08-06 23:48:54 +02:00
howto doc: replace PVP guide license with SPDX tag 2019-08-05 16:01:42 +02:00
linux_gsg config: remove redundant DPAA2 build 2019-11-06 21:30:00 +01:00
mempool doc: add Marvell OCTEON TX2 mempool guide 2019-06-25 23:35:57 +02:00
nics net/mlx5: control transmit doorbell register mapping 2019-11-11 14:23:02 +01:00
platform net/octeontx2: support SDP interface 2019-11-08 23:15:05 +01:00
prog_guide ethdev: move egress metadata to dynamic field 2019-11-08 23:15:05 +01:00
rawdevs doc: bump supported SDK and firmware version for DPAA2 2019-11-06 22:00:50 +01:00
rel_notes net/mlx5: add ConnectX6-DX device ID 2019-11-08 23:15:05 +01:00
sample_app_ug examples/vhost_blk: introduce vhost storage sample 2019-11-11 14:23:02 +01:00
testpmd_app_ug app/testpmd: support hairpin 2019-11-08 23:15:05 +01:00
tools doc: add --external-mbufs option in compress perf guide 2019-10-23 16:57:06 +02:00
windows_gsg doc: fix helloworld build on Windows 2019-05-29 13:02:55 +02:00
conf.py doc: clean PDF config 2019-05-29 13:03:22 +02:00
custom.css
index.rst doc: add guide for Windows 2019-04-03 01:21:31 +02:00
meson.build doc: fix build with latest meson 2019-07-06 10:32:40 +02:00