hujun260 opened a new pull request, #18007: URL: https://github.com/apache/nuttx/pull/18007
## Summary Add spinlock synchronization to child task status structure management in group_childstatus.c. This ensures thread-safe access to the global child pool freelist and child task group lists, preventing race conditions and data corruption in multi-core systems where child process lifecycle operations may occur concurrently. ## Changes **File modified:** `sched/group/group_childstatus.c` **Key changes:** - Added `g_child_pool_lock` spinlock for protecting global child pool freelist access - Protected `group_alloc_child()`: Wraps freelist allocation with spin_lock_irqsave/restore - Protected `group_free_child()`: Wraps child structure return to freelist with spinlock - Protected `group_find_child()`: Added spinlock protection for child list traversal - Protected `group_exit_child()`: Protected search for exited child in group's child list - Protected `group_remove_child()`: Protected child removal from group's child list - Protected `group_remove_children()`: Protected iteration and removal of all children from group ## Benefits & Technical Details **Race Condition Prevention**: Eliminates potential race conditions in child task pool management where concurrent allocations, deallocations, and group child list modifications could lead to: - Freelist corruption - Lost child status entries - Double-free or use-after-free errors - Inconsistent group child list state **SMP Safety**: Ensures correct operation in SMP systems where multiple cores might simultaneously allocate/free child status structures or modify group child lists. **Interrupt Safety**: Uses spin_lock_irqsave/restore to handle scenarios where interrupts might trigger child process exit during critical sections. ## Testing - [x] Verified spinlock protection covers all freelist operations (alloc/free) - [x] Verified spinlock protection covers all group child list operations - [x] Confirmed no deadlock conditions with nested spinlock acquisitions - [x] Tested with SMP-enabled builds for multi-core stability ## Impact - **Stability**: Significantly improves system stability in SMP configurations - **Compatibility**: Fully backward compatible; no API changes - **Performance**: Minimal impact; spinlock contention expected to be low -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
