Hello, Stephen, Good day The issue is not caused by DPDK itself, but arises when the DPDK worker process attempts to set affinity to a cpuset that exceeds the limits set by the cgroup cpuset settings. Original error prints are: PANIC in rte_eal_init(): Cannot set affinity # Callstacks. Finding the detailed reason for the failure was challenging, so I added extra print statements to help diagnose the issue. I understand your concern about maintaining OS independence with the rte_thread functions. This change aims to provide more context when errors occur, facilitating quicker troubleshooting. I agree that this introduces more code and could be seen as platform-specific. Perhaps we could implement this conditionally, only for platforms where such detailed logging is supported and useful. At 2024-04-24 23:50:21, "Stephen Hemminger" wrote: >On Tue, 23 Apr 2024 11:02:43 +0800 >Jianyue Wu wrote: > >> Improve the robustness of setting thread affinity in DPDK >> by adding detailed error logging. > >Is this an error you saw in your application or something inside DPDK? > >> Changes: >> 1. Check the return value of pthread_setaffinity_np() and log an error >> if the call fails. > >Not sure this is necessary. The rte_thread functions are intended to >be os independent wrapper for threads. Does it need to be this chatty. > >> 2. Include the current thread name, the intended CPU set, and a detailed >> error message in the log. > >This introduces a more code and ends up being Linux/BSD specific only >for the case where application did something wrong.