rpcsx/rpcs3/Emu/Cell/lv2
eladash 4a28319edf Implement SPU page faults notifications
* Implement both RawSPU and threaded SPU page fault recovery
* Guard page_fault_notification_entries access with a mutex
* Add missing lock in sys_ppu_thread_recover_page_fault/get_page_fault_context
* Fix EINVAL check in sys_ppu_thread_recover_page_fault, previously when the event was not found begin() was erased and
CELL_OK was returned.
* Fixed page fault recovery waiting logic:
- Do not rely on a single thread_ctrl notification (unsafe)
- Avoided a race where ::awake(ppu) can be called before ::sleep(ppu) therefore nop-ing out the notification
* Avoid inconsistencies with vm flags on page fault cause detection
* Fix sys_mmapper_enable_page_fault_notification EBUSY check
from RE it's allowed to register the same queue twice (on a different area) but not to enable page fault notifications twice
2019-03-12 13:28:31 +03:00
..
lv2.cpp Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_cond.cpp Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_cond.h Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
sys_dbg.cpp Make vm::get_super_ptr return contiguous memory 2018-09-27 23:37:13 +03:00
sys_dbg.h Implement sys_dbg_read_process_memory and sys_dbg_write_process_memory 2018-07-10 01:47:47 +04:00
sys_event.cpp Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_event.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_event_flag.cpp Small improvements to sys_event_flag 2019-03-08 23:44:46 +03:00
sys_event_flag.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_fs.cpp Yield before flushing io buffers in fsync (sys_fs) (#5506) 2019-03-08 16:07:14 +00:00
sys_fs.h Yield before flushing io buffers in fsync (sys_fs) (#5506) 2019-03-08 16:07:14 +00:00
sys_gamepad.cpp Reintroduce LOG_CHANNEL 2018-08-25 15:39:00 +03:00
sys_gamepad.h Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
sys_gpio.cpp Rsx: rewrite address translation 2018-08-13 16:16:34 +03:00
sys_gpio.h hle: gpio syscalls 2018-02-12 04:29:07 +04:00
sys_interrupt.cpp Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_interrupt.h Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_lwcond.cpp sys_lwmutex fixup after #5680 2019-03-08 23:44:46 +03:00
sys_lwcond.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_lwmutex.cpp sys_lwmutex fixup after #5680 2019-03-08 23:44:46 +03:00
sys_lwmutex.h exception throwing fix in sys_lwmutex_create 2019-02-27 22:16:08 +03:00
sys_memory.cpp Fix DECR mode allocations (sys_memory) 2019-01-31 16:03:38 +03:00
sys_memory.h Set total memory size according to sdkver 2018-12-30 20:12:32 +00:00
sys_mmapper.cpp Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_mmapper.h Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_mutex.cpp Fixes issues where the mutex is destroyed while an unlock is happening 2018-12-31 01:39:47 +03:00
sys_mutex.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_net.cpp Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_net.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_ppu_thread.cpp Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_ppu_thread.h Return error code in sys_ppu_thread_get_join_state 2019-01-25 18:04:33 +03:00
sys_process.cpp Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_process.h Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
sys_prx.cpp Reintroduce LOG_CHANNEL 2018-08-25 15:39:00 +03:00
sys_prx.h Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
sys_rsx.cpp Use error_code in sys_rsx 2019-03-08 23:44:46 +03:00
sys_rsx.h Use error_code in sys_rsx 2019-03-08 23:44:46 +03:00
sys_rwlock.cpp Fix spurious abort in sys_rwlock_tryrlock and sys_semaphore_trywait (#5579) 2019-01-22 23:10:17 +03:00
sys_rwlock.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_semaphore.cpp Fix spurious abort in sys_rwlock_tryrlock and sys_semaphore_trywait (#5579) 2019-01-22 23:10:17 +03:00
sys_semaphore.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_spu.cpp Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_spu.h Implement SPU page faults notifications 2019-03-12 13:28:31 +03:00
sys_ss.cpp Reintroduce LOG_CHANNEL 2018-08-25 15:39:00 +03:00
sys_ss.h Rsx: rewrite address translation 2018-08-13 16:16:34 +03:00
sys_sync.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_time.cpp Reintroduce LOG_CHANNEL 2018-08-25 15:39:00 +03:00
sys_time.h Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
sys_timer.cpp Migration to named_thread<> 2018-10-19 22:22:35 +03:00
sys_timer.h Rewrite condition variables 2018-11-29 01:30:05 +03:00
sys_trace.cpp Reintroduce LOG_CHANNEL 2018-08-25 15:39:00 +03:00
sys_trace.h Minor fixes 2017-01-28 03:21:11 +03:00
sys_tty.cpp Debug console emulation 2018-12-30 20:12:32 +00:00
sys_tty.h Rsx: rewrite address translation 2018-08-13 16:16:34 +03:00
sys_usbd.cpp sys_usbd: add sys_usbd_event_port_send function 2018-09-05 19:53:09 +03:00
sys_usbd.h sys_usbd: add sys_usbd_event_port_send function 2018-09-05 19:53:09 +03:00
sys_vm.cpp Fix sys_vm_memory_map address base 2018-12-30 20:12:32 +00:00
sys_vm.h Rsx: rewrite address translation 2018-08-13 16:16:34 +03:00