bunnei
aaffe73f47
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
bunnei
deb3536936
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
Lioncash
18636013c9
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
Lioncash
16de0a6a96
core/CMakeLists: Make some warnings errors
...
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.
This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
2020-10-13 13:16:49 -04:00
ReinUsesLisp
8f050dd1d9
hle/scheduler: Fix data race in is_context_switch_pending
...
As reported by tsan, SelectThreads could write to
is_context_switch_pending holding a mutex while SwitchToCurrent reads it
without holding any.
It is assumed that the author didn't want an atomic here, so the code is
reordered so that whenever is_context_switch_pending is read inside
SwitchToContext, the mutex is locked.
2020-08-26 02:56:05 +00:00
bunnei
16993fc92b
Merge pull request #4491 from lioncash/unused-vars
...
kernel: Remove unused variables
2020-08-10 12:04:30 -04:00
Lioncash
3ea31a9922
kernel: Remove unused variables
...
Resolves a few compiler warnings.
2020-08-05 15:19:48 -04:00
Lioncash
353cd8dc24
scheduler: Resolve sign conversion warning
2020-08-05 15:12:29 -04:00
Lioncash
02ff5e8d81
cpu_manager: Mark function getters as static
...
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
2020-07-16 13:30:56 -04:00
ReinUsesLisp
a0226819e1
core_timing,scheduler: Use std::scoped_lock when possible
...
Simplifies the cognitive load of procedures using locks and makes locks
safe against exceptions.
2020-06-28 21:42:57 -03:00
Fernando Sahmkow
94a51e6b21
Core/Common: Address Feedback.
2020-06-27 18:20:06 -04:00
Fernando Sahmkow
555c4c238c
Kernel: Correct Host Context on Threads and Scheduler.
2020-06-27 11:36:15 -04:00
Fernando Sahmkow
21235cdab1
Scheduler: Correct Reload/Unload
2020-06-27 11:35:59 -04:00
Fernando Sahmkow
720858ba13
Thread: Release the ARM Interface on exitting.
2020-06-27 11:35:58 -04:00
Fernando Sahmkow
db60ca2704
General: Move ARM_Interface into Threads.
2020-06-27 11:35:58 -04:00
Fernando Sahmkow
d03d00c9c2
Scheduler: Correct yielding interaction with SetThreadActivity.
2020-06-27 11:35:49 -04:00
Fernando Sahmkow
b121009e03
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
2020-06-27 11:35:48 -04:00
Fernando Sahmkow
3869e55c27
Kernel: Rewind on SVC change.
2020-06-27 11:35:46 -04:00
Fernando Sahmkow
ebb640e968
CPU_Manager: Unload/Reload threads on preemption on SingleCore
2020-06-27 11:35:43 -04:00
Fernando Sahmkow
65225cf61b
Scheduler: Set last running time on thread.
2020-06-27 11:35:41 -04:00
Fernando Sahmkow
76daf8f672
Kernel: Corrections to TimeManager, Scheduler and Mutex.
2020-06-27 11:35:40 -04:00
Fernando Sahmkow
24bc1f020a
Kernel: Fixes, corrections and asserts to scheduler and different svcs.
2020-06-27 11:35:40 -04:00
Fernando Sahmkow
5183094c24
Scheduler: Correct yields.
2020-06-27 11:35:39 -04:00
Fernando Sahmkow
a9ed059a07
Scheduler: Remove arm_interface lock and a few corrections.
2020-06-27 11:35:35 -04:00
Fernando Sahmkow
87117805c9
SVC: Correct SetThreadActivity.
2020-06-27 11:35:33 -04:00
Fernando Sahmkow
e5454c3665
Scheduler: Correct locking for hle threads.
2020-06-27 11:35:32 -04:00
Fernando Sahmkow
723a909ee9
Scheduler: Fix HLE Threads on guard
2020-06-27 11:35:31 -04:00
Fernando Sahmkow
b80f252d11
Scheduler: Protect on closed threads.
2020-06-27 11:35:31 -04:00
Fernando Sahmkow
e501cbe5b8
Scheduler: Correct assert.
2020-06-27 11:35:30 -04:00
Fernando Sahmkow
c8e62451c6
Core: Correct rebase.
2020-06-27 11:35:29 -04:00
Fernando Sahmkow
8c30c20863
Scheduler: Release old thread fiber before trying to switch to the next thread fiber.
2020-06-27 11:35:28 -04:00
Fernando Sahmkow
a3f7acb149
Scheduler: Correct Select Threads Step 2.
2020-06-27 11:35:24 -04:00
Fernando Sahmkow
47c01e68da
Kernel: Corrections to Scheduling.
2020-06-27 11:35:23 -04:00
Fernando Sahmkow
cd3d1798d8
General: Add Asserts
2020-06-27 11:35:21 -04:00
Fernando Sahmkow
78eeea9f17
General: Add better safety for JIT use.
2020-06-27 11:35:20 -04:00
Fernando Sahmkow
6605f8acfa
SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.
2020-06-27 11:35:17 -04:00
Fernando Sahmkow
85ca7b2bdb
SVC: Correct SendSyncRequest.
2020-06-27 11:35:14 -04:00
Fernando Sahmkow
7ee76003ad
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
bunnei
048ac77adc
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
Fernando Sahmkow
d0b12c793d
Scheduler: Inline global scheduler in Scheduler Lock.
2020-02-22 12:39:17 -04:00
Fernando Sahmkow
d6584d988f
Kernel: Correct pending feedback.
2020-02-22 11:51:03 -04:00
Fernando Sahmkow
78f01601d0
Kernel: Address Feedback.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
7c2b72bcef
Kernel: Implement Scheduler locks
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
f5da504663
Kernel: Make global scheduler depend on KernelCore
2020-02-22 11:18:06 -04:00
Fernando Sahmkow
0d2a459fae
Core: Address Feedback
2020-02-13 19:10:33 -04:00
Fernando Sahmkow
6fc0790f3a
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
Fernando Sahmkow
0a5e0d4777
Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
...
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Fernando Sahmkow
2624ac7ae8
CpuCore: Clear exclusive state after doing a run in dynarmic.
...
This commit corrects an error in which a Core could remain with an
exclusive state after running, leaving space for possible race
conditions between changing cores.
2019-12-05 18:08:59 -04:00
bunnei
5cb0f276fe
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
Lioncash
63a3b54c1f
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