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
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
ece5287843
kernel: readable_event: Signal only once.
2019-11-03 04:25:41 -05:00
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
28bb248db6
kernel: readable_event: Initialize members.
2019-11-03 04:18:39 -05:00
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
f19c1a7cda
scheduler: Silence sign conversion warnings
2019-10-27 22:44:52 -04:00
2fb0bbff29
scheduler: Initialize class members directly where applicable
...
Reduces the overall amount of code.
2019-10-27 22:13:55 -04:00
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
64e652d8cb
Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.
2019-10-15 11:55:30 -04:00
e28c7f5217
Kernel: Address Feedback 2
2019-10-15 11:55:28 -04:00
a3524879be
Kernel: Clang Format
2019-10-15 11:55:27 -04:00
c32520ceb7
Kernel: Reverse global accessor removal.
2019-10-15 11:55:26 -04:00
3073615dbc
Kernel: Address Feedback.
2019-10-15 11:55:25 -04:00
25f8606a6d
Kernel Scheduler: Make sure the global scheduler shutdowns correctly.
2019-10-15 11:55:24 -04:00
b3c1deba49
Kernel_Thread: Eliminate most global accessors.
2019-10-15 11:55:23 -04:00
0b72b34d89
KernelSVC: Assert that condition variable address is aligned to 4 bytes.
2019-10-15 11:55:22 -04:00
96b1b144af
Kernel: Correct Paused scheduling
2019-10-15 11:55:21 -04:00
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
27d571c084
Kernel: Correct redundant yields to only advance time forward.
2019-10-15 11:55:20 -04:00
7176857177
Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual
2019-10-15 11:55:19 -04:00
44e09e5f21
Kernel: Correct Results in Condition Variables and Mutexes
2019-10-15 11:55:18 -04:00
1ec1e81373
Kernel: Clang Format
2019-10-15 11:55:17 -04:00
e05a8c2385
Kernel: Remove global system accessor from WaitObject
2019-10-15 11:55:16 -04:00
0cf26cee59
Scheduler: Implement Yield Count and Core migration on Thread Preemption.
2019-10-15 11:55:16 -04:00
2d382de6fa
Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.
2019-10-15 11:55:15 -04:00
b49c0dab87
Kernel: Initial implementation of thread preemption.
2019-10-15 11:55:14 -04:00
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
82218c925a
Kernel: Style and Corrections
2019-10-15 11:55:12 -04:00
fcc6b34fff
Correct PrepareReschedule
2019-10-15 11:55:12 -04:00
3a94e7ea33
Comment and reorganize the scheduler
2019-10-15 11:55:11 -04:00
b5d1e44782
Add PrepareReschedule where required.
2019-10-15 11:55:10 -04:00
b8b7ebcece
Correct compiling errors and addapt to the new interface.
2019-10-15 11:55:09 -04:00
9031502974
Correct Supervisor Calls to work with the new scheduler,
2019-10-15 11:55:08 -04:00
57a71f899a
Add interfacing to the Global Scheduler
2019-10-15 11:55:07 -04:00
a1ac0c6cb4
Addapt thread class to the new Scheduler
2019-10-15 11:55:06 -04:00
b164d8ee53
Implement a new Core Scheduler
2019-10-15 11:55:04 -04:00
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
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
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
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
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
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
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
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
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
024b5fe91a
Kernel: Address Feedback
2019-07-19 11:28:57 -04:00
9bede4eeed
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
5d369112d9
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
5e457bf258
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