| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2018-06-02 | Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may ↵ | Subv | |
| already have an assigned lock owner. This situation may happen like so: Thread 1 with low priority calls WaitProcessWideKey with timeout. Thread 2 with high priority calls WaitProcessWideKey without timeout. Thread 3 calls SignalProcessWideKey - Thread 2 acquires the lock and awakens. - Thread 1 can't acquire the lock and is put to sleep with the lock owner being Thread 2. Thread 1's timeout expires, with the lock owner still being set to Thread 2. | |||
| 2018-05-30 | Kernel/Thread: Corrected a typo that caused the affinity mask to never be ↵ | Subv | |
| changed. | |||
| 2018-05-30 | Kernel/Thread: Corrected a typo in an assert about the processor id. | Subv | |
| 2018-05-10 | thread: Rename mask to affinity_masks. | bunnei | |
| 2018-05-10 | thread: Support core change on ResumeFromWait and improve ChangeCore. | bunnei | |
| 2018-05-10 | thread: Initialize ideal_core and mask members. | bunnei | |
| 2018-05-10 | threading: Reschedule only on cores that are necessary. | bunnei | |
| 2018-05-10 | thread: Implement ChangeCore function. | bunnei | |
| 2018-05-10 | core: Implement multicore support. | bunnei | |
| 2018-04-30 | core_timing: Namespace all functions and constants in core_timing's header | Lioncash | |
| All of these variables and functions are related to timings and should be within the namespace. | |||
| 2018-04-27 | general: Convert assertion macros over to be fmt-compatible | Lioncash | |
| 2018-04-25 | kernel: Migrate logging macros to fmt-compatible ones | Lioncash | |
| 2018-04-23 | Kernel: Implemented mutex priority inheritance. | Subv | |
| Verified with a hwtest and implemented based on reverse engineering. Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds. Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped. | |||
| 2018-04-20 | Kernel: Remove unused ConditionVariable class. | Subv | |
| 2018-04-20 | Kernel: Remove old and unused Mutex code. | Subv | |
| 2018-04-20 | Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. | Subv | |
| Switch mutexes are no longer kernel objects, they are managed in userland and only use the kernel to handle the contention case. Mutex addresses store a special flag value (0x40000000) to notify the guest code that there are still some threads waiting for the mutex to be released. This flag is updated when a thread calls ArbitrateUnlock. TODO: * Fix svcWaitProcessWideKey * Fix svcSignalProcessWideKey * Remove the Mutex class. | |||
| 2018-03-31 | memory: Fix stack region. | bunnei | |
| 2018-03-18 | thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB. | bunnei | |
| 2018-03-16 | kernel: Move stack region outside of application heap. | bunnei | |
| 2018-03-16 | MemoryState: Add additional memory states and improve naming. | bunnei | |
| 2018-03-14 | core: Move process creation out of global state. | bunnei | |
| 2018-02-27 | thread: Clear the process list on shutdown. | Jules Blok | |
| 2018-02-18 | kernel: Use Scheduler class for threading. | bunnei | |
| 2018-02-18 | kernel: Remove unused address_arbiter code. | bunnei | |
| 2018-02-18 | Kernel/IPC: Add a small delay after each SyncRequest to prevent thread ↵ | Subv | |
| starvation. Ported from citra PR #3091 The delay specified here is from a Nintendo 3DS, and should be measured in a Nintendo Switch. This change is enough to prevent Puyo Puyo Tetris's main thread starvation. | |||
| 2018-02-14 | thread: Silence formatting specifier warnings | Lioncash | |
| 2018-01-08 | Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback. | Subv | |
| 2018-01-08 | CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119) | B3n30 | |
| * CoreTiming: New CoreTiming; Add Test for CoreTiming | |||
| 2018-01-02 | arm: Remove SkyEye/Dyncom code that is ARMv6-only. | bunnei | |
| 2017-12-31 | thread: Keep track of the initially created handle. | bunnei | |
| This is kinda crufty, but we need it for now to update guest state variables. | |||
| 2017-12-30 | thread: Main thread should set thread handle to reg 1. | bunnei | |
| 2017-12-30 | thread: Remove THUMB mode flag. | bunnei | |
| 2017-12-30 | thread: Main thread should be ready by default, all others dormant. | bunnei | |
| 2017-12-29 | kernel: Various 64-bit fixes in memory/process/thread | bunnei | |
| 2017-10-31 | hle: Use Switch formatted result codes. | bunnei | |
| 2017-10-19 | hle: Fix QueryMemory response for MemoryInfo. | bunnei | |
| 2017-10-09 | Merge remote-tracking branch 'upstream/master' into nx | bunnei | |
| # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h | |||
| 2017-10-09 | loader: Various improvements for NSO/NRO loaders. | bunnei | |
| 2017-10-01 | Merge pull request #2971 from Subv/per_process_memops | Sebastian Valle | |
| Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process. | |||
| 2017-10-01 | Kernel/Thread: Added a helper function to get a thread's command buffer VAddr. | Subv | |
| 2017-09-30 | kernel: Various threading fixes to support 64-bit addressing. | bunnei | |
| 2017-09-30 | Merge pull request #2967 from Subv/thread_wakeup_callbacks | Sebastian Valle | |
| Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken | |||
| 2017-09-30 | Fixed type conversion ambiguity | Huw Pascoe | |
| 2017-09-28 | Kernel/Threads: When putting a thread to wait, specify a function to execute ↵ | Subv | |
| when it is awoken. This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads. If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable. | |||
| 2017-09-26 | Kernel/Thread: Allow specifying which process a thread belongs to when ↵ | Subv | |
| creating it. Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded. | |||
| 2017-09-24 | memory: Add GetCurrentPageTable/SetCurrentPageTable | MerryMage | |
| Don't expose Memory::current_page_table as a global. | |||
| 2017-09-15 | Merge pull request #2842 from Subv/switchable_page_table | B3n30 | |
| Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule | |||
| 2017-09-15 | Kernel/Threads: Don't clear the CPU instruction cache when performing a ↵ | Subv | |
| context switch from an idle thread into a thread in the same process. We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions. | |||
| 2017-09-10 | Kernel/Memory: Switch the current page table when a new process is scheduled. | Subv | |
| 2017-08-21 | Kernel/Threads: Don't immediately switch to the new main thread when loading ↵ | Subv | |
| a new process. This is necessary for loading multiple processes at the same time. The main thread will be automatically scheduled when necessary once the scheduler runs. | |||
