9b492430bb
hle: kernel: Thread: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
9e29e36a78
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
2020-12-06 00:03:24 -08:00
e18ee8d681
hle: kernel: Port KAffinityMask from Mesosphere.
2020-12-06 00:03:24 -08:00
c2ad1243ba
hle: kernel: thread: Remove unused "Running" state.
2020-11-29 01:31:52 -08:00
7b642c7781
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
3d592972dc
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
be1954e04c
core: Fix clang build
...
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
2020-10-17 19:50:39 -04:00
8bef49cde5
kernel/thread: Remove unimplemented function prototype
...
This isn't used, so it can be removed.
2020-07-16 14:32:46 -04:00
4ad69ca96e
kernel/thread: Remove global GetCurrentThread()
...
This is only used in one place, so we can fold it into the calling code,
eliminating a place for the global system instance to be used.
2020-07-15 13:28:05 -04:00
d240143588
Kernel: Correct Host Context on Threads and Scheduler.
2020-06-27 11:36:15 -04:00
48fa3b7a0f
General: Cleanup legacy code.
2020-06-27 11:36:05 -04:00
19165cd859
HLE_IPC: Correct HLE Event behavior on timeout.
2020-06-27 11:36:03 -04:00
5974e3ea33
Thread: Release the ARM Interface on exitting.
2020-06-27 11:35:58 -04:00
1567824d2d
General: Move ARM_Interface into Threads.
2020-06-27 11:35:58 -04:00
f2ade343e2
SingleCore: Move Host Timing from a sepparate thread to main cpu thread.
2020-06-27 11:35:52 -04:00
7020d498c5
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
2020-06-27 11:35:48 -04:00
f370de84b1
Kernel: Rewind on SVC change.
2020-06-27 11:35:46 -04:00
d494b074e8
Kernel: Preempt Single core on redudant yields.
2020-06-27 11:35:45 -04:00
4217e58a10
Scheduler: Correct yields.
2020-06-27 11:35:39 -04:00
83c7ba1ef7
SVC: Correct SetThreadActivity.
2020-06-27 11:35:33 -04:00
a66c61ca2d
SCC: Small corrections to CancelSynchronization
2020-06-27 11:35:33 -04:00
e4b175ade2
SVC: Correct svcWaitForAddress and svcSignalToAddress.
2020-06-27 11:35:25 -04:00
b4dc01f16a
Kernel: Correct Signal on Thread Death and Setup Sync Objects on Thread for Debugging
2020-06-27 11:35:23 -04:00
75e10578f1
Core: Correct HLE Event Callbacks and other issues.
2020-06-27 11:35:22 -04:00
15a79eb0d7
SVC: Correct SendSyncRequest.
2020-06-27 11:35:14 -04:00
3b5b950c89
SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock
2020-06-27 11:35:13 -04:00
589f9cf108
SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber
2020-06-27 11:35:12 -04:00
49ba563995
SVC: Correct CreateThread, StartThread, ExitThread, SleepThread.
2020-06-27 11:35:11 -04:00
e31425df38
General: Recover Prometheus project from harddrive failure
...
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
2020-06-27 11:35:06 -04:00
c083ea7d78
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
179bafa7cb
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
2020-02-22 11:18:06 -04:00
d23d504d77
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. ( #3154 )
...
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-24 20:15:51 -05:00
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
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
3073615dbc
Kernel: Address Feedback.
2019-10-15 11:55:25 -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
1ec1e81373
Kernel: Clang Format
2019-10-15 11:55:17 -04:00
0cf26cee59
Scheduler: Implement Yield Count and Core migration on Thread Preemption.
2019-10-15 11:55:16 -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
a1ac0c6cb4
Addapt thread class to the new Scheduler
2019-10-15 11:55:06 -04:00
abdce723eb
kernel/process: Decouple TLS handling from threads
...
Extracts out all of the thread local storage management from thread
instances themselves and makes the owning process handle the management
of the memory. This brings the memory management slightly more in line
with how the kernel handles these allocations.
Furthermore, this also makes the TLS page management a little more
readable compared to the lingering implementation that was carried over
from Citra.
2019-07-03 20:31:40 -04:00
13dda1d8ed
Merge pull request #2410 from lioncash/affinity
...
kernel/svc: Reorganize and fix up the initial handling of svcSetThreadCoreMask()
2019-05-19 13:59:52 -04:00
69a2003a8e
kernel/thread: Update thread processor ID flags
...
Adds the missing flags to the enum and documents them.
2019-04-29 01:37:51 -04:00
78574e7a47
Merge pull request #2416 from lioncash/wait
...
kernel/svc: Clean up wait synchronization related functionality
2019-04-24 22:56:08 -04:00
83b830eb2f
Merge pull request #2397 from lioncash/thread-unused
...
kernel/thread: Remove unused guest_handle member variable
2019-04-17 21:46:46 -04:00
c268ffd831
kernel/thread: Unify wait synchronization types
...
This is a holdover from Citra, where the 3DS has both
WaitSynchronization1 and WaitSynchronizationN. The switch only has one
form of wait synchronizing (literally WaitSynchonization). This allows
us to throw out code that doesn't apply at all to the Switch kernel.
Because of this unnecessary dichotomy within the wait synchronization
utilities, we were also neglecting to properly handle waiting on
multiple objects.
While we're at it, we can also scrub out any lingering references to
WaitSynchronization1/WaitSynchronizationN in comments, and change them
to WaitSynchronization (or remove them if the mention no longer
applies).
2019-04-17 09:30:56 -04:00