mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 08:21:29 +12:00
SPU: Report 'GETLLAR took too long'
Also move similar code in PPU.
This commit is contained in:
parent
4ff23a9943
commit
dc39a9b84f
2 changed files with 10 additions and 5 deletions
|
@ -1194,11 +1194,6 @@ static T ppu_load_acquire_reservation(ppu_thread& ppu, u32 addr)
|
||||||
|
|
||||||
if (vm::reservation_acquire(addr, sizeof(T)) == ppu.rtime) [[likely]]
|
if (vm::reservation_acquire(addr, sizeof(T)) == ppu.rtime) [[likely]]
|
||||||
{
|
{
|
||||||
if (count >= 15) [[unlikely]]
|
|
||||||
{
|
|
||||||
ppu_log.warning("%s took too long: %u", sizeof(T) == 4 ? "LWARX" : "LDARX", count);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ppu.use_full_rdata)
|
if (!ppu.use_full_rdata)
|
||||||
{
|
{
|
||||||
if (ppu.rtime & vm::rsrv_shared_mask)
|
if (ppu.rtime & vm::rsrv_shared_mask)
|
||||||
|
@ -1222,6 +1217,11 @@ static T ppu_load_acquire_reservation(ppu_thread& ppu, u32 addr)
|
||||||
std::memcpy(&rdata, &ppu.rdata[addr & 0x78], 8);
|
std::memcpy(&rdata, &ppu.rdata[addr & 0x78], 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (count >= 15) [[unlikely]]
|
||||||
|
{
|
||||||
|
ppu_log.warning("%s took too long: %u", sizeof(T) == 4 ? "LWARX" : "LDARX", count);
|
||||||
|
}
|
||||||
|
|
||||||
return static_cast<T>(rdata << data_off >> size_off);
|
return static_cast<T>(rdata << data_off >> size_off);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2352,6 +2352,11 @@ bool spu_thread::process_mfc_cmd()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i >= 25) [[unlikely]]
|
||||||
|
{
|
||||||
|
spu_log.warning("GETLLAR took too long: %u", i);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue