walnux/fs/inode
chao an ace7f0c633 fs/spinlock: replace no sched_lock() version to improve the performance
after below change merge to kernel, spin_lock() will turn off preemption by default,
but this change is not applicable to all scenarios. The locations in the kernel that
use spin_lock() extensively only require short critical sections and do not trigger
scheduling, which leads to serious performance degradation of NuttX in AMP mode.

In this PR, I try to expose similar problems and hope that each subsystem will carefully check the code coverage

https://github.com/apache/nuttx/pull/14578
|commit b69111d16a
|Author: hujun5 <hujun5@xiaomi.com>
|Date:   Thu Jan 23 16:14:18 2025 +0800
|
|    spinlock: add sched_lock to spin_lock_irqsave
|
|    reason:
|    We aim to replace big locks with smaller ones. So we will use spin_lock_irqsave extensively to
|    replace enter_critical_section in the subsequent process. We imitate the implementation of Linux
|    by adding sched_lock to spin_lock_irqsave in order to address scenarios where sem_post occurs
|    within spin_lock_irqsave, which can lead to spinlock failures and deadlocks.
|
|    Signed-off-by: hujun5 <hujun5@xiaomi.com>

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-01-24 11:48:23 +08:00
..
CMakeLists.txt fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_files.c fs/spinlock: replace no sched_lock() version to improve the performance 2025-01-24 11:48:23 +08:00
fs_foreachinode.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inode.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inodeaddref.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inodebasename.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inodefind.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inodefree.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inodegetpath.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inoderelease.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_inoderemove.c arch_atomic: only support atomic_xx and atomic64_xx function 2024-12-04 14:03:14 +01:00
fs_inodereserve.c arch_atomic: only support atomic_xx and atomic64_xx function 2024-12-04 14:03:14 +01:00
fs_inodesearch.c fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
inode.h fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
Make.defs fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00