Eladash
2eebbd307d
LV2: Minor optimization regarding signal flag
2022-08-07 20:23:54 +03:00
Eladash
dc851a729e
LV2: Postpone thread notifications to afterward mutex ownership(s)
2022-08-07 20:23:54 +03:00
Eladash
5f8f9e33f1
RSX/Savestates: Replace GCM hack with a proper fix
2022-07-08 12:57:43 +03:00
Eladash
f0c71ae2ae
Savestates: Fix saving sys_event_queue_destroy
2022-07-08 12:57:43 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation ( #10478 )
2022-07-04 16:02:17 +03:00
Eladash
48ad959697
sys_event: Fix PPU queue forced uproot of waiters ( #11147 )
2021-11-13 20:22:54 +03:00
Eladash
063df64108
SPU/event queue: Implement protocol for SPU queue
2021-08-13 08:58:09 +03:00
Eladash
bf61c826d5
SPU/event queue: Atomically resume SPU group
2021-08-12 22:24:54 +03:00
clienthax
85b33e9cae
Hack for msmw2.sprx timeout.
2021-07-17 14:39:36 +02:00
Eladash
8bd58b1ad4
Remove lv2_event_queue::check(weak_ptr)
2021-05-15 00:31:14 +03:00
Eladash
31b55e0030
event queue: Structure size efficiency
2021-05-09 10:58:14 +03:00
Eladash
363cc60c82
sys_event: Save ID of self event queue
2021-05-09 10:58:14 +03:00
Eladash
64997662d2
LV2: Fixup for IPC
...
* Fix typo in lv2_obj::create.
* Always save ipc_key as 0 for non-shared object creations, regardless of thbe value set by creation attribute.
* Show IPC key of shared memory (sys_mmapper) memory objects in kernel explorer.
2021-05-07 14:58:22 +03:00
Eladash
900ebf6583
sys_event: Typo fix ( #10246 )
2021-05-07 09:34:25 +01:00
Eladash
7b6482c01d
LV2: Improve IPC support ( #10206 )
...
* Remove custom event queue's IPC management of favour of universal LV2 approach.
* Move ipc_manager to FXO.
* Fix ipc_manager internal storage memory leak: deallocate entry when IPC object destroyed.
* Rewrite lv2_obj::create to be simpler (remove many duplicated code).
* Always execute lv2_obj::create under both IPC and IDM mutexes at once (not in non-atomic single-steps). Fixing potential case where concurrency can cause IDM to contain 2 or more different objects with the same IPC key with SYS_SYNC_NOT_CARE (instead of the same object).
* Do not rely on smart ptr reference count to tell if the object exists. Use similar approach as event queues as it makes error checkings accurate.
* Optimize lv2_event_port by using std::shared_ptr for queue which wasn't allowed before.
2021-05-07 09:58:30 +03:00
Eladash
72c85744b9
kernel-explorer: Show bound queue to port information
...
Show its IPC key or ID, depends on the queue's type.
2021-04-23 21:34:05 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
Nekotekina
605d57c541
sys_event: cleanup (replace vm::temporary_unlock)
...
Also made minor changes in sys_rsx.cpp.
Removed unused exception std headers.
2020-10-30 17:49:07 +03:00
Eladash
d9750e8f9f
SPU/PPU reservations: Optimizations for reservation locks and check_state() (non-TSX)
2020-07-09 03:17:35 +01:00
Eladash
a0f0f58fc5
sys_event_queue: Fix IPC support
2020-06-15 17:08:57 +03:00
Eladash
edde748519
sys_event_queue: Fix forced event queue destruction
...
Add missing last existence check at sys_spu_thread_(try)receive_event and lv2_event_queue::send.
2020-05-04 01:10:19 +03:00
Eladash
2b75df22d9
sys_event_queue: Fix ports disconnection after queue destruction
2020-04-30 18:58:42 +03:00
Eladash
66bd8308d9
lv2: Wait for rescheduling before confirming timeouts ( #7875 )
2020-03-28 03:16:59 +00:00
Nekotekina
92e3eaf3ff
Fix signed-unsigned comparisons and mark warning as error (part 2).
2020-02-19 22:54:58 +03:00
Megamouse
fe75311be2
move config structs to own files and clean up some headers
2020-02-17 15:08:17 +03:00
Nekotekina
ad9c9f0183
C-style cast cleanup II
2019-11-30 18:17:45 +03:00
Eladash
7475be99ab
lv2: Check ipc_key value if object is process shared
2019-11-03 14:59:47 +03:00
Nekotekina
fd839243ec
Revert PR 6405
2019-08-27 14:05:38 +03:00
Eladash
a921fe3351
lv2: Wait for rescheduling before confirming ETIMEOUT
2019-08-27 03:44:34 +03:00
Nekotekina
7db2e2537f
Don't call lv2_obj::awake_all with empty list
...
Fixup after #5883
2019-08-22 02:13:39 +03:00
eladash
050339bb3e
PPU/LV2: Make thread-lists scheduling atomic
2019-08-17 22:46:36 +03:00
Eladash
85b1152e29
Timers scaling and fixes
2019-07-23 00:09:01 +01:00
Nekotekina
0a88a23bf5
sys_event: add vm::temporary_unlock
2019-07-14 18:06:02 +03:00
Lassi Hämäläinen
c963c51a60
Remove unnecessary header includes
...
- Manually removed lot of unneeded #includes to clean code and reduce
compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
Nekotekina
1b37e775be
Migration to named_thread<>
...
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
Nekotekina
ca5158a03e
Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
...
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina
363811981d
Reintroduce LOG_CHANNEL
...
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
eladash
f349695a75
Rsx: rewrite address translation
2018-08-13 16:16:34 +03:00
Nekotekina
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
Nekotekina
1262263f5c
Fix sys_event_port_connect_ipc
2017-09-04 02:15:28 +03:00
Nekotekina
8f9410ceff
Implemented syscall sys_event_port_connect_ipc
2017-08-31 22:10:22 +03:00
Jake
21dd715b42
sys_rsx: implement support for lle-gcm
2017-08-02 01:33:12 +03:00
Nekotekina
a209d0d7fa
Minor fix of sys_event_queue_receive
2017-07-30 01:09:42 +03:00
Nekotekina
bf53035e3f
IPC support for lv2 sync objects
2017-07-26 21:03:41 +03:00
Nekotekina
88fef183a3
config.yml: Log section optimized
2017-05-15 14:37:05 +03:00
Nekotekina
4739eb3601
Reservation fix
2017-03-11 15:48:43 +03:00
Nekotekina
9000407a77
cpu_thread::test_state added
...
lv2_obj::sleep adjustment
synchronization fixes
2017-02-22 13:23:21 +03:00
Nekotekina
598c90f376
PPU thread scheduler
2017-02-13 22:26:11 +03:00