1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-15 22:11:00 +00:00
serenity/Kernel/FileSystem/SysFS/Subsystems/Kernel
Liav A a9839d7ac5 Kernel/SysFS: Don't refresh/set-values inside the Jail spinlock scope
Only do so after a brief check if we are in a Jail or not. This fixes
SMP, because apparently it is crashing when calling try_generate()
from the SysFSGlobalInformation::refresh_data method, so the fix for
this is to simply not do that inside the Process' Jail spinlock scope,
because otherwise we will simply have a possible flow of taking
multiple conflicting Spinlocks (in the wrong order multiple times), for
the SysFSOverallProcesses generation code:
Process::current().jail(), and then Process::for_each_in_same_jail being
called, we take Process::all_instances(), and Process::current().jail()
again.
Therefore, we should at the very least eliminate the first taking of the
Process::current().jail() spinlock, in the refresh_data method of the
SysFSGlobalInformation class.
2023-01-05 23:58:13 +01:00
..
Network Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
Variables Kernel/SysFS: Don't refresh/set-values inside the Jail spinlock scope 2023-01-05 23:58:13 +01:00
CommandLine.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
CommandLine.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
CPUInfo.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
CPUInfo.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Directory.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
Directory.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
DiskUsage.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
DiskUsage.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
GlobalInformation.cpp Kernel/SysFS: Don't refresh/set-values inside the Jail spinlock scope 2023-01-05 23:58:13 +01:00
GlobalInformation.h Kernel: Disallow jailed processes to read files in /sys/kernel directory 2022-12-03 05:47:58 -07:00
Interrupts.cpp Kernel+lsirq: Track per-CPU IRQ handler call counts 2022-11-19 15:39:30 +01:00
Interrupts.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
Jails.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
Jails.h Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
Keymap.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Keymap.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
LoadBase.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
LoadBase.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Log.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Log.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
MemoryStatus.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
MemoryStatus.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
PowerStateSwitch.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
PowerStateSwitch.h Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
Processes.cpp Kernel+LibCore+LibC: Implement support for forcing unveil on exec 2022-11-26 12:42:15 -07:00
Processes.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
Profile.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Profile.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
SystemMode.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
SystemMode.h Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
SystemStatistics.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
SystemStatistics.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00
Uptime.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
Uptime.h Kernel: Allow read access sparingly to some /sys/kernel directory nodes 2022-12-03 05:47:58 -07:00