walnux/include/nuttx
hujun5 b4cc9fb11b sched: change nxsched_islocked_global to nxsched_islocked_tcb
reason:
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 Cpu1~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

Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-armv8a:nsh_smp
$ make
Running with qemu
$ 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

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-10-05 13:49:55 +08:00
..
1wire include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
analog include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
audio include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
binfmt include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
can include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
clk include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
contactless include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
coresight include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
crypto include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
dma include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
drivers include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
eeprom include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
efuse include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
fs include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
himem include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
hwspinlock include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
i2c include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
i3c include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
input include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
ioexpander include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
lcd include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
leds include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
lib include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
math include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mbox include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mm include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
modem include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
motor include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mtd include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
net include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
note include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
nx include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
pci include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
pinctrl include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
power include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rc include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
regmap include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
reset include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rf include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rmt include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rpmsg include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rptun include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
segger include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sensors include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
serial include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
spi include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
syslog include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
timers include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
usb include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
usrsock include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
vhost drivers/vhost: add vhost framework for NuttX 2024-10-03 17:37:40 +08:00
video include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
virtio include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
wireless include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
.gitignore
addrenv.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
allsyms.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
arch.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
ascii.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
atexit.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
atomic.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
bits.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
board.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
cache.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
can.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
cancelpt.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
clock.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
compiler.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
coredump.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
crc8.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
crc16.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
crc32.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
crc64.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
elf.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
environ.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
envpath.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
ethtool.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
event.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
fdcheck.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
fdt.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
gdbstub.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
hashtable.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
idr.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
init.h sched: change nxsched_islocked_global to nxsched_islocked_tcb 2024-10-05 13:49:55 +08:00
instrument.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
ipcc.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
irq.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
kmalloc.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
kthread.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
lin.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
lirc.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
list.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
memoryregion.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mmcsd.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
module.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mqueue.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mutex.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
notifier.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
nuttx.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
page.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
panic_notifier.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
pgalloc.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
progmem.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
pthread.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
queue.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
random.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
reboot_notifier.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
rwsem.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sched.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sched_note.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
scsi.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sdio.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sdio_slave.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
semaphore.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
signal.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
spawn.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
spinlock.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
streams.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
symtab.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
tee.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
thermal.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
tls.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
trace.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
uorb.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
userspace.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
vt100.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
wdog.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
wqueue.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
zoneinfo.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00