SPU: Report 'GETLLAR took too long'

Also move similar code in PPU.
This commit is contained in:
Nekotekina 2020-10-13 00:12:01 +03:00
parent 4ff23a9943
commit dc39a9b84f
2 changed files with 10 additions and 5 deletions

View file

@ -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);
} }
} }

View file

@ -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;
} }