Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							46bb609981 
							
						 
					 
					
						
						
							
							Kernel: Optimize condition variable threads management.  
						
						
						
						
					 
					
						2019-11-21 11:13:29 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							2ab41ceff4 
							
						 
					 
					
						
						
							
							Kernel: Correct SignalProcessWideKey  
						
						... 
						
						
						
						When the target is 0, all threads must be processed. 
						
						
					 
					
						2019-11-21 10:46:55 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							2d16507f9f 
							
						 
					 
					
						
						
							
							Kernel: Correct behavior of Condition Variables to be more similar to real hardware.  
						
						... 
						
						
						
						This commit ensures cond var threads act exactly as they do in the real
console. The original implementation uses an RBTree and the behavior of
cond var threads is that at the same priority level they act like a
FIFO. 
						
						
					 
					
						2019-11-21 10:46:55 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							7d16b2d2dd 
							
						 
					 
					
						
						
							
							Kernel: Correct Cancel Synchronization.  
						
						... 
						
						
						
						This commit corrects the behavior of cancel synchronization when the
thread is running/ready and ensures the next wait is cancelled as it's
suppose to. 
						
						
					 
					
						2019-11-16 12:41:51 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							12dc918937 
							
						 
					 
					
						
						
							
							kernel: Resolve sign conversion warnings  
						
						... 
						
						
						
						Uncovered a bug within Thread's SetCoreAndAffinityMask() where an
unsigned variable (ideal_core) was being compared against "< 0", which
would always be a false condition.
We can also get rid of an unused function (GetNextProcessorId) which contained a sign
mismatch warning. 
						
						
					 
					
						2019-11-12 07:55:39 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							ece5287843 
							
						 
					 
					
						
						
							
							kernel: readable_event: Signal only once.  
						
						
						
						
					 
					
						2019-11-03 04:25:41 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							b0ab803ce8 
							
						 
					 
					
						
						
							
							kernel: events: Remove ResetType::Automatic.  
						
						... 
						
						
						
						- This does not actually seem to exist in the real kernel - games reset these automatically.
# Conflicts:
#	src/core/hle/service/am/applets/applets.cpp
#	src/core/hle/service/filesystem/fsp_srv.cpp 
						
						
					 
					
						2019-11-03 04:22:45 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							28bb248db6 
							
						 
					 
					
						
						
							
							kernel: readable_event: Initialize members.  
						
						
						
						
					 
					
						2019-11-03 04:18:39 -05:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							6c8f28813c 
							
						 
					 
					
						
						
							
							scheduler: Mark parameter of AskForReselectionOrMarkRedundant() as const  
						
						... 
						
						
						
						This is only compared against, so it can be made const. 
						
						
					 
					
						2019-10-27 23:35:50 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f19c1a7cda 
							
						 
					 
					
						
						
							
							scheduler: Silence sign conversion warnings  
						
						
						
						
					 
					
						2019-10-27 22:44:52 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2fb0bbff29 
							
						 
					 
					
						
						
							
							scheduler: Initialize class members directly where applicable  
						
						... 
						
						
						
						Reduces the overall amount of code. 
						
						
					 
					
						2019-10-27 22:13:55 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2dc469ceba 
							
						 
					 
					
						
						
							
							scheduler: Amend documentation comments  
						
						... 
						
						
						
						Adjusts the formatting of a few of the comments an ensures they get
recognized as proper Doxygen comments. 
						
						
					 
					
						2019-10-27 22:12:32 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							64e652d8cb 
							
						 
					 
					
						
						
							
							Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.  
						
						
						
						
					 
					
						2019-10-15 11:55:30 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e28c7f5217 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback 2  
						
						
						
						
					 
					
						2019-10-15 11:55:28 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							a3524879be 
							
						 
					 
					
						
						
							
							Kernel: Clang Format  
						
						
						
						
					 
					
						2019-10-15 11:55:27 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							c32520ceb7 
							
						 
					 
					
						
						
							
							Kernel: Reverse global accessor removal.  
						
						
						
						
					 
					
						2019-10-15 11:55:26 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							3073615dbc 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback.  
						
						
						
						
					 
					
						2019-10-15 11:55:25 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							25f8606a6d 
							
						 
					 
					
						
						
							
							Kernel Scheduler: Make sure the global scheduler shutdowns correctly.  
						
						
						
						
					 
					
						2019-10-15 11:55:24 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b3c1deba49 
							
						 
					 
					
						
						
							
							Kernel_Thread: Eliminate most global accessors.  
						
						
						
						
					 
					
						2019-10-15 11:55:23 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							0b72b34d89 
							
						 
					 
					
						
						
							
							KernelSVC: Assert that condition variable address is aligned to 4 bytes.  
						
						
						
						
					 
					
						2019-10-15 11:55:22 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							96b1b144af 
							
						 
					 
					
						
						
							
							Kernel: Correct Paused scheduling  
						
						
						
						
					 
					
						2019-10-15 11:55:21 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							1c6a11ab14 
							
						 
					 
					
						
						
							
							Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel.  
						
						
						
						
					 
					
						2019-10-15 11:55:20 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							27d571c084 
							
						 
					 
					
						
						
							
							Kernel: Correct redundant yields to only advance time forward.  
						
						
						
						
					 
					
						2019-10-15 11:55:20 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							7176857177 
							
						 
					 
					
						
						
							
							Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual  
						
						
						
						
					 
					
						2019-10-15 11:55:19 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							44e09e5f21 
							
						 
					 
					
						
						
							
							Kernel: Correct Results in Condition Variables and Mutexes  
						
						
						
						
					 
					
						2019-10-15 11:55:18 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							1ec1e81373 
							
						 
					 
					
						
						
							
							Kernel: Clang Format  
						
						
						
						
					 
					
						2019-10-15 11:55:17 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e05a8c2385 
							
						 
					 
					
						
						
							
							Kernel: Remove global system accessor from WaitObject  
						
						
						
						
					 
					
						2019-10-15 11:55:16 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							0cf26cee59 
							
						 
					 
					
						
						
							
							Scheduler: Implement Yield Count and Core migration on Thread Preemption.  
						
						
						
						
					 
					
						2019-10-15 11:55:16 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							2d382de6fa 
							
						 
					 
					
						
						
							
							Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.  
						
						
						
						
					 
					
						2019-10-15 11:55:15 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b49c0dab87 
							
						 
					 
					
						
						
							
							Kernel: Initial implementation of thread preemption.  
						
						
						
						
					 
					
						2019-10-15 11:55:14 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							103f3a2fe5 
							
						 
					 
					
						
						
							
							Scheduler: Add protections for Yield bombing  
						
						... 
						
						
						
						In case of redundant yields, the scheduler will now idle the core for 
it's timeslice, in order to avoid continuously yielding the same thing 
over and over. 
						
						
					 
					
						2019-10-15 11:55:13 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							82218c925a 
							
						 
					 
					
						
						
							
							Kernel: Style and Corrections  
						
						
						
						
					 
					
						2019-10-15 11:55:12 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							fcc6b34fff 
							
						 
					 
					
						
						
							
							Correct PrepareReschedule  
						
						
						
						
					 
					
						2019-10-15 11:55:12 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							3a94e7ea33 
							
						 
					 
					
						
						
							
							Comment and reorganize the scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:11 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b5d1e44782 
							
						 
					 
					
						
						
							
							Add PrepareReschedule where required.  
						
						
						
						
					 
					
						2019-10-15 11:55:10 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b8b7ebcece 
							
						 
					 
					
						
						
							
							Correct compiling errors and addapt to the new interface.  
						
						
						
						
					 
					
						2019-10-15 11:55:09 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							9031502974 
							
						 
					 
					
						
						
							
							Correct Supervisor Calls to work with the new scheduler,  
						
						
						
						
					 
					
						2019-10-15 11:55:08 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							57a71f899a 
							
						 
					 
					
						
						
							
							Add interfacing to the Global Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:07 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							a1ac0c6cb4 
							
						 
					 
					
						
						
							
							Addapt thread class to the new Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:06 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b164d8ee53 
							
						 
					 
					
						
						
							
							Implement a new Core Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:04 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f1382cf0e7 
							
						 
					 
					
						
						
							
							core: Remove Core::CurrentProcess()  
						
						... 
						
						
						
						This only encourages the use of the global system instance (which will
be phased out long-term). Instead, we use the direct system function
call directly to remove the appealing but discouraged short-hand. 
						
						
					 
					
						2019-10-06 13:53:12 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f763e23083 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Correct doxygen comment parameter tags for MapPhysicalMemory/UnmapPhysicalMemory  
						
						... 
						
						
						
						Corrects the parameter names within the doxygen comments so that they
resolve properly. 
						
						
					 
					
						2019-09-04 19:58:55 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							b0da7e4262 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Move variables closer to usage spots in MapPhysicalMemory/UnmapPhysicalMemory  
						
						... 
						
						
						
						Narrows the scope of variables down to where they're only necessary. 
						
						
					 
					
						2019-09-04 19:58:52 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							96cc9a9279 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Correct behavior in failure case of UnmapPhysicalMemory()  
						
						... 
						
						
						
						If an unmapping operation fails, we shouldn't be decrementing the amount
of memory mapped and returning that the operation was successful. We
should actually be returning the error code in this case. 
						
						
					 
					
						2019-08-29 19:29:43 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							56c6f767ae 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Reserve memory ahead of time for slow path in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids potentially expensive (depending on the size of the memory block)
allocations by reserving the necessary memory before performing both
insertions. This avoids scenarios where the second insert may cause a
reallocation to occur. 
						
						
					 
					
						2019-08-29 19:29:43 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							a43ee8d752 
							
						 
					 
					
						
						
							
							kernel/vm_manager: std::move shared_ptr instance in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids an unnecessary atomic reference count increment and decrement. 
						
						
					 
					
						2019-08-29 19:28:58 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							785c4946dd 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Deduplicate iterator creation in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids needing to read the same long sequence of code in both code
paths. Also makes it slightly nicer to read and debug, as the locals
will be able to be shown in the debugger. 
						
						
					 
					
						2019-08-29 19:28:57 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							70485e690b 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Simplify some std::vector constructor calls  
						
						... 
						
						
						
						Same behavior, one less magic constant to read. 
						
						
					 
					
						2019-08-29 19:28:04 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							3f695333cd 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Simplify some assertion messages  
						
						... 
						
						
						
						Assertions already log out the function name, so there's no need to
manually include the function name in the assertion strings. 
						
						
					 
					
						2019-08-29 19:26:42 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							024b5fe91a 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback  
						
						
						
						
					 
					
						2019-07-19 11:28:57 -04:00