aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2022-04-11hle: kernel: k_spin_lock: Remove unused ThreadPause.bunnei
2022-04-11hle: kernel: Use std::mutex instead of spin locks for most kernel locking.bunnei
2022-04-11Merge pull request #8157 from lat9nq/kernel-racesbunnei
kernel: Fix some data races
2022-04-07core/hle: Replace lock_guard with scoped_lockMerry
2022-04-07Merge pull request #8148 from merryhime/interruptsFernando S
dynarmic: Better interrupts
2022-04-05k_system_control: Fix data racelat9nq
`return distribution(gen)` is a data race between a read and a write in two threads, reported by TSan. Remove static random number generators so they aren't using the same generator.
2022-04-03k_auto_object: Fix data racelat9nq
Change the memory order to acqure-release when we decrement the reference count. Prevents a race with line 89 reported by TSan.
2022-04-03k_thread: Fix data racelat9nq
TSan reports a data race between writing at cpp:1162 and reading at h:262. Make the thread_state atomic to prevent this.
2022-04-03k_process: Fix data racelat9nq
TSan reported a race between thread 36 and thread 34, a read at :225 and a write at :225 respectively. Make total_proces_running_time_ticks atomic to avoid this race.
2022-04-03kernel: Fix current_process racelat9nq
TSan reported a race at :258 and :803, so make current_process an atomic pointer.
2022-04-03k_scheduler_lock: Fix data racelat9nq
TSan reports a race between the main thread and T37 during IsLockedByCurrentThread and when it's set at the end of Lock(), respectively. Set owner_thread to an atomic pointer to fix it. Co-authored-by: bunnei <bunneidev@gmail.com>
2022-04-03dynarmic: Better interruptsmerry
2022-04-02hle: service: Add option for service interfaces to create or use the default ↵bunnei
thread.
2022-04-02hle: kernel: Create a default thread for services that do not need their own ↵bunnei
host thread.
2022-03-26hle: kernel: k_page_table: Fix implementations of LockForCodeMemory & ↵bunnei
UnlockForCodeMemory.
2022-03-26hle: kernel: k_page_table: Implement LockMemoryAndOpen & UnlockMemory.bunnei
2022-03-26hle: kernel: svc: MapProcessMemory: Fix usage of KPageLinkedList to use ↵bunnei
physical address space.
2022-03-26hle: kernel: svc: CreateCodeMemory: Remove log of 'out' host pointer.bunnei
- This does not seem terribly useful and is inconsistent with other usage.
2022-03-26hle: kernel: k_code_memory: Fix usage of KPageLinkedList to use physical ↵bunnei
address space.
2022-03-26hle: kernel: k_page_table: Implement MakeAndOpenPageGroup & MakePageGroup.bunnei
2022-03-26hle: kernel: k_page_table: Add IsHeapPhysicalAddress method.bunnei
2022-03-26hle: kernel: k_page_linked_list: Add Empty method.bunnei
2022-03-26hle: kernel: svc: UnmapProcessCodeMemory: Fix inverted alignment check.bunnei
2022-03-21Merge pull request #8048 from ameerj/include-purgebunnei
general: Reduce unused includes across the project
2022-03-19Merge pull request #8040 from Morph1984/handle-tablebunnei
KHandleTable: Optimize table entry layout
2022-03-19core: Reduce unused includesameerj
2022-03-18general: Reduce core.h includesameerj
2022-03-18KHandleTable: Optimize table entry layoutMorph
Since the handle type is not being used, we can reduce the amount of space each entry takes up by 4 bytes.
2022-03-14core: hle: kernel: init_slab_setup: Move CalculateSlabHeapGapSize to global ↵bunnei
namespace.
2022-03-14core: hle: kernel: Allocate dummy threads on host thread storage.bunnei
- Fixes a crash where on subsequent boots, long-lived host threads would have their dummy threads freed.
2022-03-14core: hle: kernel: Downgrade dangling objects warning to debug.bunnei
- It is not impossible to leak kernel objects, so this is not really any issue anymore (albeit, still interesting).
2022-03-14core: hle: kernel: Make object list container global and ensure it is reset ↵bunnei
on each emulation session.
2022-03-14core: hle: kernel: Remove server session tracking.bunnei
- These are now allocated/managed by emulated memory, so we do not need to track and free them on shutdown.
2022-03-14core: hle: kernel: k_process: Remove handle table finalize, reset page table.bunnei
2022-03-14core: hle: kernel: k_process: Implement thread local storage accurately.bunnei
2022-03-14core: hle: kernel: k_page_table: Add implementations of MapPages, ↵bunnei
UnmapPages, and FindFreeArea for TLS.
2022-03-14core: hle: kernel: k_slab_heap: Refresh to use guest allocations.bunnei
2022-03-14core: hle: kernel: Update init_slab_heap, use device memory, and add ↵bunnei
KThreadLocalPage and KPageBuffer. - Refreshes our slab initialization code to latest known behavior. - Moves all guest kernel slabs into emulated device memory. - Adds KThreadLocalPage and KPageBuffer, which we will use for accurate TLS management.
2022-03-14core: hle: kernel: k_page_buffer: Add KThreadLocalPage primitive.bunnei
2022-03-14core: hle: kernel: k_page_buffer: Add KPageBuffer primitive.bunnei
2022-03-14core: hle: kernel: k_thread: Ensure host Fiber is freed.bunnei
2022-03-14core: hle: kernel: k_server_session: Ensure SessionRequestManager is freed.bunnei
2022-03-14core: hle: kernel: k_thread: Update to reflect tree changes.bunnei
2022-03-14core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and ↵bunnei
SessionRequestManager.
2022-03-14core: hle: kernel: k_memory_layout: Update kernel slab memory sizes.bunnei
2022-03-14core: hle: kernel: svc_types: Add ThreadLocalRegionSize.bunnei
2022-03-14core: hle: kernel: k_condition_variable: Update to reflect tree changes.bunnei
2022-03-14core: hle: kernel: k_address_arbiter: Update to reflect tree changes.bunnei
2022-03-08hle: service: ldr: Use deterministic addresses when mapping NROs.bunnei
- Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues.
2022-03-07hle: kernel: KPageTable: Improve implementations of MapCodeMemory and ↵bunnei
UnmapCodeMemory. - This makes these functions more accurate to the real HOS implementations. - Fixes memory access issues in Super Smash Bros. Ultimate that occur when un/mapping NROs.