jerpelea opened a new pull request, #14025:
URL: https://github.com/apache/nuttx/pull/14025
## Summary
1 To improve efficiency, we mimic Linux's behavior where preemption
disabling is
only applicable to the current CPU and does not affect other CPUs.
2 In the future, we will implement "spinlock+sched_lock", and use it
extensively.
Under such circumstances, if preemption is still globally disabled, it will
seriously impact
the scheduling efficiency.
3 We have removed g_cpu_lockset and used irqcount in order to eliminate the
dependency of
schedlock on critical sections in the future, simplify the logic, and
further enhance the
performance of sched_lock.
4 We set lockcount to 1 in order to lock scheduling on all CPUs during
startup, without
the need to provide additional functions to disable scheduling on other CPUs.
5 Cpu (1-n) must wait for cpu0 to enter the idle state before enabling
scheduling because
it prevents CPUs1~n from competing with cpu0 for the memory manager mutex,
which could
cause the cpu0 idle task to enter a wait state and trigger an assert.
size nuttx
before:
text data bss dec hex filename
265396 51057 63646 380099 5ccc3 nuttx
after:
text data bss dec hex filename
265184 51057 63642 379883 5cbeb nuttx
size -216
## Impact
RELEASE
## Testing
CI
--
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]