Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								a1686db2de 
								
							 
						 
						
							
							
								
								Kernel: Skip setting region name if none is given to mmap  
							
							... 
							
							
							
							This keeps us from accidentally overwriting an already set region name,
for example when we are mapping a file (as, in this case, the file name
is already stored in the region). 
							
						 
						
							2022-04-12 01:52:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								e84bbfed44 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$mkdir  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								165a23b68c 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$rename  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								5c064d3e8e 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$rmdir  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								d4ce43cf45 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$statvfs  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								4ae93179f1 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$symlink  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								1474b18070 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$link  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								fa360f7d88 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$unlink  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								5a96260e25 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$setsockopt  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								c2372242b1 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$getsockopt  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								849c227f72 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$shutdown  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								e620487b66 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$connect  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								9547a8e8a2 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$close  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								0297349922 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$chown  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								8458313e8a 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$fchown  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								f986a3b886 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$bind  
							
							... 
							
							
							
							This syscall doesn't access any unprotected shared data. 
							
						 
						
							2022-04-09 23:46:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Luke Wilde 
								
							 
						 
						
							
							
							
							
								
							
							
								1682b0b6d8 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$set_coredump_metadata  
							
							... 
							
							
							
							The only requirement for this syscall is to make
Process::m_coredump_properties SpinlockProtected. 
							
						 
						
							2022-04-09 21:51:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jelle Raaijmakers 
								
							 
						 
						
							
							
							
							
								
							
							
								cc411b328c 
								
							 
						 
						
							
							
								
								Kernel: Remove big lock from sys$accept4  
							
							... 
							
							
							
							The only thing we needed to check is whether `socket.accept()` returns
a socket, and if not, we go back to blocking again. 
							
						 
						
							2022-04-09 17:53:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9b9b05eabf 
								
							 
						 
						
							
							
								
								Kernel: Make sys$mmap() round requested VM size to page size multiple  
							
							... 
							
							
							
							This fixes an issue where File::mmap() overrides would fail because they
were expecting to be called with a size evenly divisible by PAGE_SIZE. 
							
						 
						
							2022-04-05 22:26:37 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e3e1d79a7d 
								
							 
						 
						
							
							
								
								Kernel: Remove unused ShouldDeallocateVirtualRange parameters  
							
							... 
							
							
							
							Since there is no separate virtual range allocator anymore, this is
no longer used for anything. 
							
						 
						
							2022-04-05 01:15:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								63ddbaf68a 
								
							 
						 
						
							
							
								
								Kernel: Tweak broken dbgln_if() in sys$fork() after RegionTree changes  
							
							
							
						 
						
							2022-04-04 11:05:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								12b612ab14 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$adjtime() as not needing the big lock  
							
							... 
							
							
							
							This syscall works on global kernel state and so doesn't need protection
from threads in the same process. 
							
						 
						
							2022-04-04 00:42:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4306422f29 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$clock_settime() as not needing the big log  
							
							... 
							
							
							
							This syscall ends up disabling interrupts while changing the time,
and the clock is a global resource anyway, so preventing threads in the
same process from running wouldn't solve anything. 
							
						 
						
							2022-04-04 00:42:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								55814f6e0e 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$sched_{set,get}param() as not needing the big lock  
							
							... 
							
							
							
							Both of these syscalls take the scheduler lock while accessing the
thread priority, so there's no reliance on the process big lock. 
							
						 
						
							2022-04-04 00:42:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9250ac0c24 
								
							 
						 
						
							
							
								
								Kernel: Randomize non-specific VM allocations done by sys$execve()  
							
							... 
							
							
							
							Stuff like TLS regions, main thread stacks, etc. All deserve to be
randomized unless the ELF requires specific placement. :^) 
							
						 
						
							2022-04-04 00:42:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								36d829b97c 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$listen() as not needing the big lock  
							
							... 
							
							
							
							This syscall already performs the necessary locking and so doesn't
need to rely on the process big lock. 
							
						 
						
							2022-04-03 22:22:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e103c5fe2d 
								
							 
						 
						
							
							
								
								Kernel: Don't hog file descriptor table lock in sys$bind()  
							
							... 
							
							
							
							We don't need to hold the lock across the entire syscall. Once we've
fetched the open file description we're interested in, we can let go. 
							
						 
						
							2022-04-03 22:20:34 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								85ceab1fec 
								
							 
						 
						
							
							
								
								Kernel: Don't hog file descriptor table lock in sys$listen()  
							
							... 
							
							
							
							We don't need to hold the lock across the entire syscall. Once we've
fetched the open file description we're interested in, we can let go. 
							
						 
						
							2022-04-03 22:18:57 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bc4282c773 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock  
							
							... 
							
							
							
							These syscalls already perform the necessary locking and don't rely on
the process big lock. 
							
						 
						
							2022-04-03 22:06:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								858b196c59 
								
							 
						 
						
							
							
								
								Kernel: Unbreak ASLR in the new RegionTree world  
							
							... 
							
							
							
							Functions that allocate and/or place a Region now take a parameter
that tells it whether to randomize unspecified addresses. 
							
						 
						
							2022-04-03 21:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								07f3d09c55 
								
							 
						 
						
							
							
								
								Kernel: Make VM allocation atomic for userspace regions  
							
							... 
							
							
							
							This patch move AddressSpace (the per-process memory manager) to using
the new atomic "place" APIs in RegionTree as well, just like we did for
MemoryManager in the previous commit.
This required updating quite a few places where VM allocation and
actually committing a Region object to the AddressSpace were separated
by other code.
All you have to do now is call into AddressSpace once and it'll take
care of everything for you. 
							
						 
						
							2022-04-03 21:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ffe2e77eba 
								
							 
						 
						
							
							
								
								Kernel: Add Memory::RegionTree to share code between AddressSpace and MM  
							
							... 
							
							
							
							RegionTree holds an IntrusiveRedBlackTree of Region objects and vends a
set of APIs for allocating memory ranges.
It's used by AddressSpace at the moment, and will be used by MM soon. 
							
						 
						
							2022-04-03 21:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								02a95a196f 
								
							 
						 
						
							
							
								
								Kernel: Use AddressSpace region tree for range allocation  
							
							... 
							
							
							
							This patch stops using VirtualRangeAllocator in AddressSpace and instead
looks for holes in the region tree when allocating VM space.
There are many benefits:
- VirtualRangeAllocator is non-intrusive and would call kmalloc/kfree
  when used. This new solution is allocation-free. This was a source
  of unpleasant MM/kmalloc deadlocks.
- We consolidate authority on what the address space looks like in a
  single place. Previously, we had both the range allocator *and* the
  region tree both being used to determine if an address was valid.
  Now there is only the region tree.
- Deallocation of VM when splitting regions is no longer complicated,
  as we don't need to keep two separate trees in sync. 
							
						 
						
							2022-04-03 21:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2617adac52 
								
							 
						 
						
							
							
								
								Kernel: Store AddressSpace memory regions in an IntrusiveRedBlackTree  
							
							... 
							
							
							
							This means we never need to allocate when inserting/removing regions
from the address space. 
							
						 
						
							2022-04-03 21:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								4ba39c8d63 
								
							 
						 
						
							
							
								
								Kernel: Implement f_basetype in statvfs  
							
							
							
						 
						
							2022-04-03 19:15:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								086969277e 
								
							 
						 
						
							
							
								
								Everywhere: Run clang-format  
							
							
							
						 
						
							2022-04-01 21:24:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								d6ce3e63e2 
								
							 
						 
						
							
							
								
								Kernel: Disallow elevating pledge promises with no_error set  
							
							... 
							
							
							
							8233da3398 
						
							2022-03-29 12:11:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								8233da3398 
								
							 
						 
						
							
							
								
								Kernel: Add a 'no_error' pledge promise  
							
							... 
							
							
							
							This makes pledge() ignore promises that would otherwise cause it to
fail with EPERM, which is very useful for allowing programs to run under
a "jail" so to speak, without having them termiate early due to a
failing pledge() call. 
							
						 
						
							2022-03-26 21:34:56 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								b5ef900ccd 
								
							 
						 
						
							
							
								
								Kernel: Don't assume paths of TTYs and pseudo terminals anymore  
							
							... 
							
							
							
							The obsolete ttyname and ptsname syscalls are removed.
LibC doesn't rely on these anymore, and it helps simplifying the Kernel
in many places, so it's an overall an improvement.
In addition to that, /proc/PID/tty node is removed too as it is not
needed anymore by userspace to get the attached TTY of a process, as
/dev/tty (which is already a character device) represents that as well. 
							
						 
						
							2022-03-22 20:26:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									int16 
								
							 
						 
						
							
							
							
							
								
							
							
								256744ebdf 
								
							 
						 
						
							
							
								
								Kernel: Make mmap validation functions return ErrorOr<void>  
							
							
							
						 
						
							2022-03-22 12:20:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									int16 
								
							 
						 
						
							
							
							
							
								
							
							
								4b96d9c813 
								
							 
						 
						
							
							
								
								Kernel: Move mmap validation functions to Process  
							
							
							
						 
						
							2022-03-22 12:20:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									int16 
								
							 
						 
						
							
							
							
							
								
							
							
								479929b06c 
								
							 
						 
						
							
							
								
								Kernel: Check wxallowed mount flag when validating mmap call  
							
							
							
						 
						
							2022-03-22 12:20:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								03342876b8 
								
							 
						 
						
							
							
								
								Revert "Kernel: Use an ArmedScopeGuard to revert changes after failed mmap"  
							
							... 
							
							
							
							This reverts commit 790d620b39 
							
						 
						
							2022-03-12 21:45:57 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7b3642d08c 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$lseek() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								09e644f0ba 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$emuctl() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't do anything at all, and definitely doesn't need the
big lock. :^) 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b4fefedd1d 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$chmod() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								aa381c4a67 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$fchmod() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d074aae422 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$dup2() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8aad9e7448 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$ftruncate() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								69a6a4d927 
								
							 
						 
						
							
							
								
								Kernel: Mark sys$fstatvfs() as not needing the big lock  
							
							... 
							
							
							
							This syscall doesn't access any data that was implicitly protected by
the big lock. 
							
						 
						
							2022-03-09 16:43:00 +01:00