-
Notifications
You must be signed in to change notification settings - Fork 1k
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
sched/signal: There is no need to use sched_[un]lock #12283
base: master
Are you sure you want to change the base?
Conversation
@hujun260 some ltp test case fail: https://github.com/apache/nuttx/actions/runs/8949322132/job/24583521866?pr=12283 |
@hujun260 |
purpose: 1 sched_lock is very time-consuming, and reducing its invocations can improve performance. 2 sched_lock is prone to misuse, and narrowing its scope of use is to prevent people from referencing incorrect code and using it test: We can use qemu for testing. compiling make distclean -j20; ./tools/configure.sh -l qemu-armv8a:nsh_smp ;make -j20 running qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx We have also tested this patch on other ARM hardware platforms. Signed-off-by: hujun5 <hujun5@xiaomi.com>
@@ -154,7 +153,6 @@ int sigsuspend(FAR const sigset_t *set) | |||
nxsig_unmask_pendingsignal(); | |||
} | |||
|
|||
sched_unlock(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto ,context switch on line 129
nuttx/sched/sched/sched_removereadytorun.c
Line 228 in 4ffad26
/* Will pre-emption be disabled after the switch? If the lockcount is |
purpose:
1 sched_lock is very time-consuming, and reducing its invocations can improve performance. 2 sched_lock is prone to misuse, and narrowing its scope of use is to prevent people from referencing incorrect code and using it
test:
We can use qemu for testing.
compiling
make distclean -j20; ./tools/configure.sh -l qemu-armv8a:nsh_smp ;make -j20 running
qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx
We have also tested this patch on other ARM hardware platforms.