On 19-Mar-18 5:39 PM, Olivier Matz wrote:
On Sat, Mar 03, 2018 at 01:46:01PM +0000, Anatoly Burakov wrote:
[...]
--- a/config/common_base
+++ b/config/common_base
@@ -61,7 +61,20 @@ CONFIG_RTE_CACHE_LINE_SIZE=64
CONFIG_RTE_LIBRTE_EAL=y
CONFIG_RTE_MAX_LCORE=128
CONFIG_RTE_MAX_NUMA_NODES=8
-CONFIG_RTE_MAX_MEMSEG=256
+CONFIG_RTE_MAX_MEMSEG_LISTS=32
+# each memseg list will be limited to either RTE_MAX_MEMSEG_PER_LIST pages
+# or RTE_MAX_MEM_PER_LIST gigabytes worth of memory, whichever is the smallest
+CONFIG_RTE_MAX_MEMSEG_PER_LIST=8192
+CONFIG_RTE_MAX_MEM_PER_LIST=32
+# a "type" is a combination of page size and NUMA node. total number of memseg
+# lists per type will be limited to either RTE_MAX_MEMSEG_PER_TYPE pages (split
+# over multiple lists of RTE_MAX_MEMSEG_PER_LIST pages), or
RTE_MAX_MEM_PER_TYPE
+# gigabytes of memory (split over multiple lists of RTE_MAX_MEM_PER_LIST),
+# whichever is the smallest
+CONFIG_RTE_MAX_MEMSEG_PER_TYPE=32768
+CONFIG_RTE_MAX_MEM_PER_TYPE=128
+# legacy mem mode only
+CONFIG_RTE_MAX_LEGACY_MEMSEG=256
Would it be possible to suffix CONFIG_RTE_MAX_MEM_PER_LIST and
CONFIG_RTE_MAX_MEM_PER_TYPE with _GB? It's not that obvious that is it
gigabytes.
Sure, will add this.
What is the impact of changing one of these values on the ABI?
Some of them will change the ABI, some won't. MAX_MEMSEG_LISTS will
change the ABI because it's in the rte_eal_memconfig, but other values
are not and are only used during init (and LEGACY_MEMSEG is already
removed in GitHub code).
And what would be the impact on performance?
Depending on what you mean by performance. Generally, no impact on
performance will be noticeable because we're not really doing anything
differently - a page is a page, no matter how or when it is mapped.
These changes might also speed up some lookup operations on memseg lists
themselves.
The underlying question is: shall we increase these values to avoid changing
them later?
I do plan to increase the MAX_MEMSEG_LISTS value to at least 64.
--
Thanks,
Anatoly