diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2006-05-18 12:52:16 -0400 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2006-05-18 12:52:16 -0400 |
commit | 2a5cd79986b4a6d0f59e0b83837ff3d3e912dfaf (patch) | |
tree | 8a9527d8166e23220f60af0d5865a41ebaeeb8ae /dev/ide_disk.cc | |
parent | 0be3d001c9089b78e334dca6d0c7f1a178cf202f (diff) | |
download | gem5-2a5cd79986b4a6d0f59e0b83837ff3d3e912dfaf.tar.xz |
fix ide stats and make sinic compile after merge.
dev/ide_disk.cc:
fix dma stats
dev/sinic.cc:
make sinic compile
--HG--
extra : convert_revision : fbea04ca58f6ab52e98108f7c2b12917c2fe22d6
Diffstat (limited to 'dev/ide_disk.cc')
-rw-r--r-- | dev/ide_disk.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dev/ide_disk.cc b/dev/ide_disk.cc index 6f4234a1d..909f35c60 100644 --- a/dev/ide_disk.cc +++ b/dev/ide_disk.cc @@ -353,6 +353,36 @@ IdeDisk::doDmaDataRead() dmaReadWaitEvent.schedule(curTick + totalDiskDelay); } +void +IdeDisk::regStats() +{ + using namespace Stats; + dmaReadFullPages + .name(name() + ".dma_read_full_pages") + .desc("Number of full page size DMA reads (not PRD).") + ; + dmaReadBytes + .name(name() + ".dma_read_bytes") + .desc("Number of bytes transfered via DMA reads (not PRD).") + ; + dmaReadTxs + .name(name() + ".dma_read_txs") + .desc("Number of DMA read transactions (not PRD).") + ; + + dmaWriteFullPages + .name(name() + ".dma_write_full_pages") + .desc("Number of full page size DMA writes.") + ; + dmaWriteBytes + .name(name() + ".dma_write_bytes") + .desc("Number of bytes transfered via DMA writes.") + ; + dmaWriteTxs + .name(name() + ".dma_write_txs") + .desc("Number of DMA write transactions.") + ; +} void IdeDisk::doDmaRead() @@ -373,6 +403,10 @@ IdeDisk::doDmaRead() assert(dmaReadCG->complete() < MAX_DMA_SIZE); ctrl->dmaRead(pciToDma(dmaReadCG->addr()), dmaReadCG->size(), &dmaReadWaitEvent, dataBuffer + dmaReadCG->complete()); + dmaReadBytes += dmaReadCG->size(); + dmaReadTxs++; + if (dmaReadCG->size() == TheISA::PageBytes) + dmaReadFullPages++; dmaReadCG->next(); } else { assert(dmaReadCG->done()); @@ -445,6 +479,10 @@ IdeDisk::doDmaWrite() assert(dmaWriteCG->complete() < MAX_DMA_SIZE); ctrl->dmaWrite(pciToDma(dmaWriteCG->addr()), dmaWriteCG->size(), &dmaWriteWaitEvent, dataBuffer + dmaWriteCG->complete()); + dmaWriteBytes += dmaWriteCG->size(); + dmaWriteTxs++; + if (dmaWriteCG->size() == TheISA::PageBytes) + dmaWriteFullPages++; dmaWriteCG->next(); } else { assert(dmaWriteCG->done()); |