-
Notifications
You must be signed in to change notification settings - Fork 1.5k
sched/signals: add support to partially or fully disable signals #17644
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
sched/signals: add support to partially or fully disable signals #17644
Conversation
|
@Fix-Point please help to review |
4ef02c7 to
dd17060
Compare
|
@xiaoxiang781216 @anchao @acassis CI is failing because of dependency on apache/nuttx-apps#3333 Shall we merge apache/nuttx-apps#3333 firstly and then restart the CI? |
yes, let's merge apache/nuttx-apps#3333 and restart again. |
|
but we need add CONFIG_ENABLE_ALL_SIGNALS to the related defconfig without wating apache/nuttx-apps#3333 |
dd17060 to
ce9d18b
Compare
OK, I added defconfig update |
ce9d18b to
8a84f7a
Compare
8a84f7a to
4605df9
Compare
4605df9 to
26e1090
Compare
26e1090 to
f2e64a1
Compare
|
@wangchdo I think you need to refresh these board profiles: |
Enable CONFIG_ENABLE_ALL_SIGNAL to fix build errors Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
f2e64a1 to
43ee2fb
Compare
OK, refreshed |
Summary
Signals in NuttX serve two primary purposes:
Synchronization and wake-up
Signals can be used to block threads on specific signal sets and later wake them up by delivering the corresponding signals to those threads.
Asynchronous notification
Signals can also be used to register callback handlers for specific signals, allowing threads to asynchronously invoke those handlers when the signals are delivered.
The PR #17357 Introduced the ability to disable only the synchronization and wake-up functionality of signals, while retaining part of the signal infrastructure. This allows moderate memory savings and performance improvements.
The PR #17352 Introduced the ability to completely disable all signal functionality, providing more aggressive memory reduction and performance optimization.
This PR consolidates the above two efforts and introduces a unified mechanism that supports both:
Partial signal disablement: disabling only asynchronous notification while retaining synchronization and wake-up functionality.
Full signal disablement: disabling both synchronization / wake-up and asynchronous notification functionality.
This consolidation enables finer-grained control over signal usage, allowing system integrators to better balance functionality, memory footprint, and performance for different use cases.
Impact
Provide configuration to fully or partially disable signals, should have no impact to exist nuttx functions if
the configuration is not enabled
this PR depends on apache/nuttx-apps#3333 to fix build dependency issues when signals are partially or fully disabled.
Testing
Below tests depend on apache/nuttx-apps#3333
ostest passed on rv-virt:smp64 when CONFIG_ENABLE_PARTIAL_SIGNALS=y