bunnei
cff4a946ab
kernel: readable_event: Signal only once.
2019-11-03 04:25:41 -05:00
bunnei
eeef564c02
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
02a4c4c481
kernel: readable_event: Initialize members.
2019-11-03 04:18:39 -05:00
Lioncash
33df906815
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
0ae1dedad7
scheduler: Silence sign conversion warnings
2019-10-27 22:44:52 -04:00
Lioncash
3dbc651296
scheduler: Initialize class members directly where applicable
...
Reduces the overall amount of code.
2019-10-27 22:13:55 -04:00
Lioncash
34e9a6ea64
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
4f8fa2dd29
Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.
2019-10-15 11:55:30 -04:00
Fernando Sahmkow
3300a7631d
Kernel: Address Feedback 2
2019-10-15 11:55:28 -04:00
Fernando Sahmkow
5acd086b18
Kernel: Clang Format
2019-10-15 11:55:27 -04:00
Fernando Sahmkow
ac9dd91f1e
Kernel: Reverse global accessor removal.
2019-10-15 11:55:26 -04:00
Fernando Sahmkow
a88238d68d
Kernel: Address Feedback.
2019-10-15 11:55:25 -04:00
Fernando Sahmkow
17b53b4a54
Kernel Scheduler: Make sure the global scheduler shutdowns correctly.
2019-10-15 11:55:24 -04:00
Fernando Sahmkow
0d57b899dd
Kernel_Thread: Eliminate most global accessors.
2019-10-15 11:55:23 -04:00
Fernando Sahmkow
59b89b1dd5
KernelSVC: Assert that condition variable address is aligned to 4 bytes.
2019-10-15 11:55:22 -04:00
Fernando Sahmkow
8363d07df8
Kernel: Correct Paused scheduling
2019-10-15 11:55:21 -04:00
Fernando Sahmkow
3da21e4b4f
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
248795db6e
Kernel: Correct redundant yields to only advance time forward.
2019-10-15 11:55:20 -04:00
Fernando Sahmkow
a24c331b84
Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual
2019-10-15 11:55:19 -04:00
Fernando Sahmkow
598203b5cf
Kernel: Correct Results in Condition Variables and Mutexes
2019-10-15 11:55:18 -04:00
Fernando Sahmkow
3c9e26a003
Kernel: Clang Format
2019-10-15 11:55:17 -04:00
Fernando Sahmkow
abc8856e2c
Kernel: Remove global system accessor from WaitObject
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
7d04b271a6
Scheduler: Implement Yield Count and Core migration on Thread Preemption.
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
f2989c81d9
Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.
2019-10-15 11:55:15 -04:00
Fernando Sahmkow
68325300ae
Kernel: Initial implementation of thread preemption.
2019-10-15 11:55:14 -04:00
Fernando Sahmkow
acdce3b4df
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
5130168171
Kernel: Style and Corrections
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
87334f0f16
Correct PrepareReschedule
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
655ed87f53
Comment and reorganize the scheduler
2019-10-15 11:55:11 -04:00
Fernando Sahmkow
891babbe20
Add PrepareReschedule where required.
2019-10-15 11:55:10 -04:00
Fernando Sahmkow
4760c27922
Correct compiling errors and addapt to the new interface.
2019-10-15 11:55:09 -04:00
Fernando Sahmkow
bddf90701b
Correct Supervisor Calls to work with the new scheduler,
2019-10-15 11:55:08 -04:00
Fernando Sahmkow
07524b63e8
Add interfacing to the Global Scheduler
2019-10-15 11:55:07 -04:00
Fernando Sahmkow
18c796ab58
Addapt thread class to the new Scheduler
2019-10-15 11:55:06 -04:00
Fernando Sahmkow
7a10ae0128
Implement a new Core Scheduler
2019-10-15 11:55:04 -04:00
Lioncash
922799f1d5
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
c4cdbfdbff
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
4ca5db278f
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
ff201725ed
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
aed2815ba6
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
eb1f6e7cdd
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
1249e837ba
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
bd55b99120
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
c4fde2713d
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
5581a0d296
Kernel: Address Feedback
2019-07-19 11:28:57 -04:00
Fernando Sahmkow
5bce8f62ac
VM_Manager: Align allocated memory to 256bytes
...
This commit ensures that all backing memory allocated for the Guest CPU
is aligned to 256 bytes. This due to how gpu memory works and the heavy
constraints it has in the alignment of physical memory.
2019-07-19 10:06:08 -04:00
bunnei
a0571bcccd
Merge pull request #2687 from lioncash/tls-process
...
kernel/process: Allocate the process' TLS region during initialization
2019-07-18 13:53:04 -04:00
Fernando Sahmkow
27caf7f25f
Kernel: Downgrade WaitForAddress and SignalToAddress messages to Trace.
...
This messages were originally set as warnning since few games used these
svcs and it was needed for debugging. This is no longer the case.
2019-07-17 22:05:47 -04:00
Fernando Sahmkow
474c698422
Merge pull request #2690 from SciresM/physmem_fixes
...
Implement MapPhysicalMemory/UnmapPhysicalMemory
2019-07-14 09:16:46 -04:00
Michael Scire
5ff046b9c6
Remove unicorn mappings/unmappings
2019-07-11 15:12:33 -07:00