aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
AgeCommit message (Collapse)Author
2021-01-28hle: kernel: Recode implementation of KThread to be more accurate.bunnei
2021-01-28kernel: k_light_lock: Simplify EmuThreadHandle implementation.bunnei
2021-01-28hle: kernel: KThread: Fix ThreadType definition.bunnei
2021-01-28hle: kernel: Move single core "phantom mode" out of KThread.bunnei
- This is a workaround that does not belong in a kernel primitive.
2021-01-28hle: kernel: KThread: Remove thread types that do not exist.bunnei
2021-01-28core: hle: kernel: Rename Thread to KThread.bunnei
2021-01-11hle: kernel: thread: Preserve thread wait reason for debugging only.bunnei
- This is decoupled from core functionality and used for debugging only.
2021-01-11hle: kernel: Rename thread "status" to "state".bunnei
2021-01-11hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ↵bunnei
ThreadState. - This is how the real kernel works, and is more accurate and simpler.
2021-01-11core: hle: kernel: Update KSynchronizationObject.bunnei
2020-12-29hle: kernel: Manage service threads on another thread.bunnei
- This is to allow service threads to defer destruction of themselves.
2020-12-29hle: kernel: Manage host thread IDs using TLS.bunnei
- Avoids the need to have a large map of host to guest thread IDs.
2020-12-29hle: kernel: Move ServiceThread ownership to KernelCore.bunnei
- Fixes a circular dependency which prevented threads from being released on shutdown.
2020-12-28core: hle: kernel: Clear process list on boot.bunnei
2020-12-28core: kernel: Clear process list earlier.bunnei
2020-12-28core: hle: server_session: Use separate threads for each service connection.bunnei
2020-12-06hle: kernel: Migrate to KScopedSchedulerLock.bunnei
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei
2020-11-29core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei
2020-11-29common: fiber: Use boost::context instead of native fibers on Windows.bunnei
2020-11-29hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei
2020-10-27hle/kernel: Remove unused registered_core_threads to fix data racesReinUsesLisp
This member was only used on asserts and it triggered data races. Remove it to fix them.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-20kernel: Fix build with recent compiler flag changesLioncash
This slipped through the cracks due to another change being merged before the compiler flag changes.
2020-10-20Merge pull request #4796 from lioncash/clangLC
core: Fix clang build
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13kernel: Implement host thread register methods without lockingReinUsesLisp
Locks on GetCurrentHostThreadID were causing performance issues according to Visual Studio's profiler. It was consuming twice the time as arm_interface.Run(). The cost was not in the function itself but in the lockinig it required. Reimplement these functions using atomics and static storage instead of an unordered_map. This is a side effect to avoid locking and using linked lists for reads. Replace unordered_map with a linear search.
2020-08-26hle/kernel: Fix data race in GetCurrentHostThreadIDReinUsesLisp
As reported by tsan, host_thread_ids could be read while any of the RegisterHostThread variants were called. To fix this, lock the register mutex when yuzu is running in multicore mode and GetCurrentHostThreadID is called.
2020-07-27core_timing: Make use of uintptr_t to represent user_dataLioncash
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
2020-07-18Merge pull request #4348 from lioncash/nanobunnei
core_timing: Make usage of nanoseconds more consistent in the interface
2020-07-16cpu_manager: Mark function getters as staticLioncash
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-15core_timing: Make TimedCallback take std::chrono::nanosecondsLioncash
Enforces our desired time units directly with a concrete type.
2020-07-15core_timing: Make use of std::chrono with ScheduleEventLioncash
2020-07-15kernel/handle_table: Remove usages of the global system instanceLioncash
Removes even more usages of the global system instance, trimming away more dependencies on global variables and making them explicit in the interface.
2020-06-27Core/Common: Address Feedback.Fernando Sahmkow
2020-06-27General: Cleanup legacy code.Fernando Sahmkow
2020-06-27Kernel/svcBreak: Implement CacheInvalidation for Singlecore and correct ↵Fernando Sahmkow
svcBreak.
2020-06-27Scheduler: Correct Reload/UnloadFernando Sahmkow
2020-06-27General: Move ARM_Interface into Threads.Fernando Sahmkow
2020-06-27Core: Refactor ARM Interface.Fernando Sahmkow
2020-06-27SingleCore: Move Host Timing from a sepparate thread to main cpu thread.Fernando Sahmkow
2020-06-27General: Fix microprofile on dynarmic/svc, fix wait tree showing which ↵Fernando Sahmkow
threads were running.
2020-06-27General: Fix Stop functionFernando Sahmkow
2020-06-27Kernel: Preempt Single core on redudant yields.Fernando Sahmkow
2020-06-27General: Initial Setup for Single Core.Fernando Sahmkow
2020-06-27Kernel: Fixes, corrections and asserts to scheduler and different svcs.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
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-04-17kernel: resource_limit: Reserve physical memory.bunnei
2020-04-17kernel: Initialize memory layout for new VMM.bunnei
2020-04-15CMakeLists: Make -Wreorder a compile-time errorLioncash
This can result in silent logic bugs within code, and given the amount of times these kind of warnings are caused, they should be flagged at compile-time so no new code is submitted with them.