9e6b36c34c
Following [1], testpmd memory consumption has skyrocketted. The rte_port structure has gotten quite fat. struct rte_port { [...] struct rte_eth_rxconf rx_conf[65536]; /* 266280 3145728 */ /* --- cacheline 53312 boundary (3411968 bytes) was 40 bytes ago --- */ struct rte_eth_txconf tx_conf[65536]; /* 3412008 3670016 */ /* --- cacheline 110656 boundary (7081984 bytes) was 40 bytes ago --- */ [...] /* size: 8654936, cachelines: 135234, members: 31 */ [...] testpmd handles RTE_MAX_ETHPORTS ports (32 by default) which means that it needs ~256MB just for this internal representation. The reason is that a testpmd rte_port (the name is quite confusing, as it is a local type) maintains configurations for all queues of a port. But where you would expect testpmd to use RTE_MAX_QUEUES_PER_PORT as the maximum queue count, the rte_port uses MAX_QUEUE_ID set to 64k. Prefer the ethdev maximum value. After this patch: struct rte_port { [...] struct rte_eth_rxconf rx_conf[1025]; /* 8240 49200 */ /* --- cacheline 897 boundary (57408 bytes) was 32 bytes ago --- */ struct rte_eth_txconf tx_conf[1025]; /* 57440 57400 */ /* --- cacheline 1794 boundary (114816 bytes) was 24 bytes ago --- */ [...] /* size: 139488, cachelines: 2180, members: 31 */ [...] With this, we can ask for less memory in test-null.sh. [1]: https://git.dpdk.org/dpdk/commit/?id=436b3a6b6e62 Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> |
||
---|---|---|
.. | ||
cocci | ||
build-tags.sh | ||
check-dup-includes.sh | ||
check-forbidden-tokens.awk | ||
check-git-log.sh | ||
check-includes.sh | ||
check-maintainers.sh | ||
check-symbol-change.sh | ||
check-symbol-maps.sh | ||
checkpatches.sh | ||
cocci.sh | ||
get-maintainer.sh | ||
git-log-fixes.sh | ||
load-devel-config | ||
test-build.sh | ||
test-meson-builds.sh | ||
test-null.sh | ||
validate-abi.sh |