> It seems the issue arose due to changes in the DPDK read-write lock > implementation. Following these changes, the RW-lock no longer supports > recursion, implying that a single thread shouldn't obtain a read lock if it > already possesses one. The problem arises during initialization: the > rte_eal_memory_init() function acquires the memory_hotplug_lock, and later on, > the sequence of calls eal_memalloc_init() -> rte_memseg_list_walk() acquires > it > again without releasing it. This scenario introduces the risk of a potential > deadlock when concurrent write locks are applied to the same > memory_hotplug_lock. To address this locally, we resolved the issue by > replacing rte_memseg_list_walk() with rte_memseg_list_walk_thread_unsafe().
recursive read locks are bad idea and the fact that it worked before was an accident. Please send patch for review.