X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdev%2Farm%2Fsmmu_v3_transl.cc;h=98888389de2cfb05b8f2c49f37dc93dc7191c6fc;hb=159cc734ebc6228dff1669dd73fc6eae97f2aea7;hp=ab8a0e710f43857926d4b350483bcda89f51e143;hpb=81c2978e6c88ff563ff73d0d1a5cd8e55c379830;p=gem5.git diff --git a/src/dev/arm/smmu_v3_transl.cc b/src/dev/arm/smmu_v3_transl.cc index ab8a0e710..98888389d 100644 --- a/src/dev/arm/smmu_v3_transl.cc +++ b/src/dev/arm/smmu_v3_transl.cc @@ -286,7 +286,7 @@ SMMUTranslationProcess::smmuTranslation(Yield &yield) } if (context.stage1Enable || context.stage2Enable) - smmu.ptwTimeDist.sample(curTick() - ptwStartTick); + smmu.stats.ptwTimeDist.sample(curTick() - ptwStartTick); // Free PTW slot doSemaphoreUp(smmu.ptwSem); @@ -1236,7 +1236,7 @@ SMMUTranslationProcess::completeTransaction(Yield &yield, doSemaphoreUp(smmu.requestPortSem); - smmu.translationTimeDist.sample(curTick() - recvTick); + smmu.stats.translationTimeDist.sample(curTick() - recvTick); ifc.xlateSlotsRemaining++; if (!request.isAtsRequest && request.isWrite) ifc.wrBufSlotsRemaining += @@ -1365,8 +1365,9 @@ SMMUTranslationProcess::doReadSTE(Yield &yield, ste_addr = (l2_ptr & ST_L2_ADDR_MASK) + index * sizeof(ste); - smmu.steL1Fetches++; - } else if ((smmu.regs.strtab_base_cfg & ST_CFG_FMT_MASK) == ST_CFG_FMT_LINEAR) { + smmu.stats.steL1Fetches++; + } else if ((smmu.regs.strtab_base_cfg & ST_CFG_FMT_MASK) + == ST_CFG_FMT_LINEAR) { ste_addr = (smmu.regs.strtab_base & VMT_BASE_ADDR_MASK) + sid * sizeof(ste); } else { @@ -1389,7 +1390,7 @@ SMMUTranslationProcess::doReadSTE(Yield &yield, if (!ste.dw0.valid) panic("STE @ %#x not valid\n", ste_addr); - smmu.steFetches++; + smmu.stats.steFetches++; } void @@ -1427,7 +1428,7 @@ SMMUTranslationProcess::doReadCD(Yield &yield, cd_addr = l2_ptr + bits(ssid, split-1, 0) * sizeof(cd); - smmu.cdL1Fetches++; + smmu.stats.cdL1Fetches++; } else if (ste.dw0.s1fmt == STAGE1_CFG_1L) { cd_addr = (ste.dw0.s1ctxptr << ST_CD_ADDR_SHIFT) + ssid*sizeof(cd); } @@ -1453,7 +1454,7 @@ SMMUTranslationProcess::doReadCD(Yield &yield, if (!cd.dw0.valid) panic("CD @ %#x not valid\n", cd_addr); - smmu.cdFetches++; + smmu.stats.cdFetches++; } void