I have been implementing Cache Compression algorithm in gem5.
So in order to tap data for all the writes into L3 cache I have been using
handleFill() function in cache.cc file. I have been using following command
to transfer data in compressed format into L3 cache.
//Only for L3 cache
memcpy(dataOfCacheLine, pkt->getConstPtr(), blkSize);
compr_Info = compressionAlgo (dataOfCacheLine, .,
//compr_Info contains compressed data and new size.
//compressed data is then transferred into blk->data in the following way
memcpy(blk->data, compr_info.comprData, compr_info.comprSize);
Doing this leads to SIGABRT signal which terminates the execution with a
panic ("Tried to read unmapped address 0x1a8"). I debugged it with
gdb and log files and got myself zero'd down to error in memcpy statement.
Could any of you let me know why there is a crash due to second memcpy
statement provided compressed data I am storing is consistent with the
actual data referenced by the block?
Does any addressing gets disturbed when I am doing it like this? If Yes,
could you please give me some inputs on this??
Thanks a lot in advance!
gem5-users mailing list