diff options
author | Daniel R. Carvalho <odanrc@yahoo.com.br> | 2019-05-08 22:18:27 +0200 |
---|---|---|
committer | Daniel Carvalho <odanrc@yahoo.com.br> | 2019-07-06 22:55:32 +0000 |
commit | 7b09869eacfe561b927de9a61c9ebcce750357cf (patch) | |
tree | 2a739d66a6e1465d1bd2cd54d0a0c067df5c1930 /src/mem | |
parent | 97863a8209d4d08c2b9894e0c722dd1118ff04c5 (diff) | |
download | gem5-7b09869eacfe561b927de9a61c9ebcce750357cf.tar.xz |
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>
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/ruby/filters/MultiGrainBloomFilter.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.cc b/src/mem/ruby/filters/MultiGrainBloomFilter.cc index d91eb7fd0..150e0a561 100644 --- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc +++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc @@ -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 |