Here is what I found from the changes you proposed.
Entering the shell now takes 7-8 seconds instead of 15-16 seconds
Shell no longer lags while typing
Spawning processes takes around 4-5 seconds instead of 9-10 seconds.
I tried testing another scheme of directly writing and reading from the User Space Syscall Struct during a system call, removing mmu_switch in proc_try_recv, but it is not any faster. The bottleneck seems to be switching between processes with mmu_switch in proc_yield. This is apparent when loading a process, due to the number of switches between GPID_PROC and GPID_FILE.
Here is what I found from the changes you proposed.
I tried testing another scheme of directly writing and reading from the User Space Syscall Struct during a system call, removing
mmu_switch
inproc_try_recv
, but it is not any faster. The bottleneck seems to be switching between processes withmmu_switch
inproc_yield
. This is apparent when loading a process, due to the number of switches betweenGPID_PROC
andGPID_FILE
.