mem-ruby: Fix MultiGrainBloomFilter accessing

When accessing the page filter the page hash should be used
instead of the hash of the base filter.

Change-Id: I17b7c64f2a0d654c7d9a77a7bfb435385d81032c
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18739
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
Daniel R. Carvalho
2019-05-08 22:18:27 +02:00
committed by Daniel Carvalho
parent 97863a8209
commit 7b09869eac

View File

@@ -54,21 +54,23 @@ MultiGrainBloomFilter::clear()
void
MultiGrainBloomFilter::set(Addr addr)
{
int i = hash(addr);
assert(i < filter.size());
assert(pageHash(addr) < pageFilter.size());
filter[i] = 1;
pageFilter[i] = 1;
const int index = hash(addr);
assert(index < filter.size());
filter[index] = 1;
const int page_index = pageHash(addr);
assert(page_index < pageFilter.size());
pageFilter[page_index] = 1;
}
int
MultiGrainBloomFilter::getCount(Addr addr) const
{
int i = hash(addr);
assert(i < filter.size());
assert(pageHash(addr) < pageFilter.size());
return filter[i] + pageFilter[i];
const int index = hash(addr);
const int page_index = pageHash(addr);
assert(index < filter.size());
assert(page_index < pageFilter.size());
return filter[index] + pageFilter[page_index];
}
int