| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-01-20 | hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type. | bunnei | |
| - This will be used to ensure that we do not schedule dummy threads. | |||
| 2022-01-18 | Merge pull request #7701 from bunnei/clear-mem-pages | bunnei | |
| Kernel Memory Updates (Part 3): Clear KMemoryManager pages & other fixes | |||
| 2022-01-17 | Merge pull request #7712 from bunnei/fix-thread-exit | bunnei | |
| Accurately implement thread exit | |||
| 2022-01-17 | hle: remove no-op code | Valeri | |
| Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there. | |||
| 2022-01-14 | hle: kernel: k_memory_manager: Clear pages on allocation & free. | bunnei | |
| - Heap pages should be zero'd. - Also explicitly passed along heap allocation option. | |||
| 2022-01-14 | core: hle: kernel: KThread: Integrate with KWorkerTask and implement ↵ | bunnei | |
| DoWorkerTaskImpl. - This is used to terminate a thread asynchronously after it has been exited. - This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled. - Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior. | |||
| 2022-01-14 | core: hle: kernel: KProcess: Integrate with KWorkerTask and add ↵ | bunnei | |
| unimplemented DoWorkerTaskImpl. | |||
| 2022-01-14 | core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates. | bunnei | |
| - This makes our implementations of these more closely match HOS. | |||
| 2022-01-14 | core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager. | bunnei | |
| 2022-01-14 | core: hle: kernel: Add KWorkerTask and KWorkerTaskManager. | bunnei | |
| - These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess. | |||
| 2022-01-14 | hle: kernel: Fix service_threads access to be thread safe V2. | bunnei | |
| - PR #7699 attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock. - With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves. - Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue. | |||
| 2022-01-14 | Merge pull request #7699 from bunnei/fix-service-thread-race | Mai M | |
| hle: kernel: Fix service_threads access to be thread safe. | |||
| 2022-01-13 | hle: kernel: Fix service_threads access to be thread safe. | bunnei | |
| - CreateServiceThread and ReleaseServiceThread can be accessed by different threads, uses a lock to make this thread safe. - Fixes a rare crash in Pokemon Sword/Shield that can occur when a new service thread is being created while an old one is being destroyed. | |||
| 2022-01-11 | hle: kernel: k_page_table: Update SetProcessMemoryPermission. | bunnei | |
| 2022-01-11 | hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite. | bunnei | |
| 2022-01-11 | hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory. | bunnei | |
| 2022-01-08 | core: hle: kernel: svc: Updates to SetMemoryAttribute and SetMemoryPermission. | bunnei | |
| 2022-01-08 | core: hle: kernel: k_page_table: Update CheckMemoryState. | bunnei | |
| 2021-12-30 | core: hle: kernel: Implement thread pinning. | bunnei | |
| - We largely had the mechanics in place for thread pinning, this change hooks these up. - Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_thread_pinning.cpp. | |||
| 2021-12-28 | core: hle: kernel: Updated implementation of svcSetHeapSize. | bunnei | |
| - Updates our svcSetHeapSize with latest HOS, furthermore allowing heap size to properly be extended/shrunk. - Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_set_heap_size.cpp. | |||
| 2021-12-27 | Merge pull request #7621 from bunnei/set-mem-perm | bunnei | |
| core: hle: kernel: Implement SetMemoryPermission. | |||
| 2021-12-23 | core: hle: kernel: Implement SetMemoryPermission. | bunnei | |
| - Not seen in any games yet, but validated with kernel tests. | |||
| 2021-12-23 | core: hle: kernel: KThread: X18 should be a cryptographically random number. | bunnei | |
| - This was added with firmware 11.0.0 (https://switchbrew.org/wiki/11.0.0). - X18 is OR'd by kernel with 1, to make sure it is odd. | |||
| 2021-12-21 | hle: kernel: svc: GetInfo: Fix error checking with IdleTickCount. | bunnei | |
| - Enforce tha the supplied handle is invalid, not valid. - This gets Witcher 3 booting. | |||
| 2021-12-20 | Merge pull request #7597 from bunnei/remove-global-lock | bunnei | |
| core: hle: Remove global HLE lock. | |||
| 2021-12-19 | kernel: Manually destroy the current process during shut down | ameerj | |
| Avoids a memory leak. | |||
| 2021-12-17 | core: hle: Remove global HLE lock. | bunnei | |
| - This was added early on as a hack to protect against some concurrency issues. - It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex. | |||
| 2021-12-13 | Remove erroneous #pragma once | Valeri | |
| 2021-12-12 | Merge pull request #7462 from bunnei/kernel-improve-scheduling | bunnei | |
| Kernel: Improve threading & scheduling V3 | |||
| 2021-12-07 | Update k_code_memory.h | itsmeft24 | |
| 2021-12-07 | make KCodeMemory::GetSourceAddress const | itsmeft24 | |
| Co-authored-by: Mai M. <mathew1800@gmail.com> | |||
| 2021-12-06 | hle: kernel k_scheduler: EnableScheduling: Remove redundant ↵ | bunnei | |
| GetCurrentThreadPointer calls. | |||
| 2021-12-06 | hle: kernel k_process: Remove unnecessary .at usage with thread pinning methods. | bunnei | |
| 2021-12-06 | hle: kernel: Remove unnecessary virtual specifier on NotifyAvailable. | bunnei | |
| 2021-12-06 | hle: kernel: Remove unnecessary virtual specifier on EndWait. | bunnei | |
| 2021-12-06 | hle: kernel: k_light_condition_variable: Revert unnecessary license comment ↵ | bunnei | |
| changes. | |||
| 2021-12-06 | hle: kernel: k_condition_variable: Revert unnecessary style changes. | bunnei | |
| 2021-12-06 | hle: kernel: Remove unnecessary virtual specifier on CancelWait. | bunnei | |
| 2021-12-06 | hle: kernel: service_thread: Force stop threads on destruction. | bunnei | |
| 2021-12-06 | hle: kernel: k_light_lock: Implement CancelWait. | bunnei | |
| - Fixes a crash in Megadimension Neptunia VII. | |||
| 2021-12-06 | hle: kernel: service_thread: Use std::jthread. | bunnei | |
| - Fixes a potential deadlock on service thread shutdown. | |||
| 2021-12-06 | hle: kernel: k_thread: Skip reschedule on DisableDispatch with SC. | bunnei | |
| 2021-12-06 | hle: kernel: k_thread: Rename sleeping_queue -> wait_queue. | bunnei | |
| 2021-12-06 | hle: kernel: svc: Fix deadlock that can occur with single core. | bunnei | |
| 2021-12-06 | hle: kernel: k_thread: Treat dummy threads as a special type. | bunnei | |
| 2021-12-06 | hle: kernel: fix timing on thread preemption | FernandoS27 | |
| 2021-12-06 | hle: kernel: fix scheduling ops from HLE host thread. | FernandoS27 | |
| 2021-12-06 | hle: kernel: Add a flag for indicating that the kernel is currently shutting ↵ | bunnei | |
| down. | |||
| 2021-12-06 | hle: kernel: KSynchronizationObject: Fix variable shadowing. | bunnei | |
| 2021-12-06 | hle: kernel: Cleanup to match coding style. | bunnei | |
