Hello, I have some questions about the primary/secondary process of dpdk hugepage memory.
1、I have a program that calls select (means fd < 1024), and the hugepage memory in dpdk is paged mapped, which makes the program FD easily exceed 1024. I noticed that there was a parameter "-- single file segments", but for some reason, I used the "―legacy-mem" mode, and "-- single file segments" didn't seem to work under "-- legacy MEM". Is there any way to solve the problem of excessive FD? I guess the maped fd is used to lock files in the "memory hotplug" mode, and I don't find the use of keeping fd in the “--legacy-mem”mode. 2、I refer to dpdk primary/secondary process mode, and develop primary process A and secondary process B to share large page memory, Slave process B may run multiple. So my question is: a、 If main process A(or B) exits abnormally, will program A(or B) have memory leak? b、 If main process A(or B) exits abnormally, can I restart program A(or B)normally to get shared memory without affecting my entire application? I have done some practice and found that when secondary B is running normally, the primary process A restarts with an error,. The error is as follows: EAL: Detected 128 lcore(s) EAL: Detected 4 NUMA nodes [New Thread 0xffffbf333900 (LWP 6210)] EAL: Multi-process socket /var/run/dpdk/rte/mp_socket [New Thread 0xffffbeb32900 (LWP 6212)] EAL: Probing VFIO support... EAL: VFIO support initialized [New Thread 0xffffbe331900 (LWP 6882)] EAL: PCI device 0000:03:00.0 on NUMA socket 0 EAL: probe driver: 19e5:1822 net_hinic EAL: PCI device 0000:04:00.0 on NUMA socket 0 EAL: probe driver: 19e5:1822 net_hinic EAL: PCI device 0000:05:00.0 on NUMA socket 0 EAL: probe driver: 19e5:1822 net_hinic EAL: PCI device 0000:06:00.0 on NUMA socket 0 EAL: probe driver: 19e5:1822 net_hinic EAL: using IOMMU type 1 (Type 1) HINIC: Initializing pf hinic-0000:06:00.0 in primary process HINIC: Device hinic-0000:06:00.0 hwif attribute: HINIC: func_idx:3, p2p_idx:3, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:195, func_type:0 HINIC: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2 HINIC: Dma addr:0x215f738000 already in hash table, error:0, mz_name:hinic-0000:06:00.0_1 HINIC: Allocate pages for eq failed HINIC: Init aeq 0 failed HINIC: Initialize aeqs failed, rc: -12 HINIC: Init aeqs failed, nic_dev:hinic-0000:06:00.0, error:-12 HINIC: Free leaked dma_addr:0x11f939fb8, mz: EAL: Memzone is not allocated HINIC: Free leaked dma_addr:0x11f93acb8, mz: EAL: Memzone is not allocated HINIC: Free leaked dma_addr:0x11f93ae68, mz: ...... HINIC: Free leaked dma_addr:0x11f93a318, mz: EAL: Memzone is not allocated HINIC: Create nic device failed, nic_dev:hinic-0000:06:00.0 HINIC: Initializing hinic-0000:06:00.0 in primary failed EAL: Releasing pci mapped resource for 0000:06:00.0 EAL: Calling pci_unmap_resource for 0000:06:00.0 at 0x500600000 EAL: Calling pci_unmap_resource for 0000:06:00.0 at 0x500620000 EAL: Calling pci_unmap_resource for 0000:06:00.0 at 0x500628000 EAL: Requested device 0000:06:00.0 cannot be used 3、In addition, I noticed that a new function of 18.11 is to support external allocated hugepage memory. Maybe I can implement the above requirements in the application layer based on this feature, But I didn't find a detailed reference on using external memory. Thanks Huang liming
