Description: running dpdk-perf-test for DMA on Intel (Intel(R) Xeon(R) Platinum 8471N) for multiple devices and queues combination. Sample Config File: `[DPDK root folder]/app/test-dma-perf/config.ini` Current Value: `lcore_dma=lcore10@0000:00:04.2, lcore11@0000:00:04.3` Modified value: `lcore_dma=lcore10@0000:00:04.2-q0,lcore12@0000:00:04.2-q1,lcore13@0000:00:04.2-q2,lcore14@0000:00:04.2-q3,lcore15@0000:00:04.2-q4,lcore16@0000:00:04.2-q5,lcore17@0000:00:04.2-q6,lcore18@0000:00:04.2-q7,lcore19@0000:00:04.4-q0,lcore20@0000:00:04.4-q1,lcore21@0000:00:04.4-q2,lcore22@0000:00:04.4-q3,lcore23@0000:00:04.4-q4,lcore24@0000:00:04.4-q5,lcore25@0000:00:04.4-q6,lcore26@0000:00:04.4-q7` Expected behavior: All the devices are initialized and DMA Perf test run on 16 dma devices. Observed behavior: dma Perf test runs only on first 7 Devices.
Correction in Observed Behavior: dma perf test throws config file parsing error with the error of check if line too long. line no 11 is entry for lcore_dma #### Error Observed: config file parsing... rte_cfgfile_load_with_params(): line 11 - no \n found on string. Check if line too long Open configure file error. ####
Reproduced the issue locally. Based on the debug, the problem seems to be from `lib/cfgfile` where the Value holds only 256 characters. Modifying the header file to a larger value or adding compiler arguments `-Dc_args=-DCFG_VALUE_LEN=2048'` and then recompiling the dpdk fixes the problem. Will share a patch to udpate the default value.
Rather than just increasing the length of lines supported by cfgfile library, I think we should change how the config of test-dma-perf is done. Rather than a single line listing all devices, we should have it use one device per line. For example: lcore_dma0=lcore10@0000:04.2-q0 lcore_dma1=lcore12@0000:04.2-q1 .... lcore_dma15=lcore26@0000:04.4-q7