diff --git a/src/mem/ruby/filters/AbstractBloomFilter.hh b/src/mem/ruby/filters/AbstractBloomFilter.hh
index 51c5e92..6da4a9d 100644
--- a/src/mem/ruby/filters/AbstractBloomFilter.hh
+++ b/src/mem/ruby/filters/AbstractBloomFilter.hh
@@ -40,7 +40,15 @@
     virtual void clear() = 0;
     virtual void merge(AbstractBloomFilter * other_filter) = 0;
     virtual void set(Addr addr) = 0;
-    virtual void unset(Addr addr) = 0;
+
+    /**
+     * Perform the filter specific function to clear the corresponding
+     * entries (can be multiple) of an address. By default a bloom
+     * filter does not support element deletion.
+     *
+     * @param addr The address being parsed.
+     */
+    virtual void unset(Addr addr) {};
 
     virtual bool isSet(Addr addr) = 0;
     virtual int getCount(Addr addr) = 0;
diff --git a/src/mem/ruby/filters/BlockBloomFilter.hh b/src/mem/ruby/filters/BlockBloomFilter.hh
index bd24aa6..d015e1e 100644
--- a/src/mem/ruby/filters/BlockBloomFilter.hh
+++ b/src/mem/ruby/filters/BlockBloomFilter.hh
@@ -44,7 +44,7 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
+    void unset(Addr addr) override;
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc
index 4a80d53..a7e0278 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.cc
+++ b/src/mem/ruby/filters/BulkBloomFilter.cc
@@ -91,12 +91,6 @@
     m_filter[c1] = 1;
 }
 
-void
-BulkBloomFilter::unset(Addr addr)
-{
-    // not used
-}
-
 bool
 BulkBloomFilter::isSet(Addr addr)
 {
diff --git a/src/mem/ruby/filters/BulkBloomFilter.hh b/src/mem/ruby/filters/BulkBloomFilter.hh
index 2316221..683bbe1 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.hh
+++ b/src/mem/ruby/filters/BulkBloomFilter.hh
@@ -44,7 +44,6 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/H3BloomFilter.cc b/src/mem/ruby/filters/H3BloomFilter.cc
index 91aa168..6fa182f 100644
--- a/src/mem/ruby/filters/H3BloomFilter.cc
+++ b/src/mem/ruby/filters/H3BloomFilter.cc
@@ -423,12 +423,6 @@
     }
 }
 
-void
-H3BloomFilter::unset(Addr addr)
-{
-    panic("ERROR: Unset should never be called in a Bloom filter");
-}
-
 bool
 H3BloomFilter::isSet(Addr addr)
 {
diff --git a/src/mem/ruby/filters/H3BloomFilter.hh b/src/mem/ruby/filters/H3BloomFilter.hh
index efbdec3..b9890e7 100644
--- a/src/mem/ruby/filters/H3BloomFilter.hh
+++ b/src/mem/ruby/filters/H3BloomFilter.hh
@@ -44,7 +44,6 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
index 48e8380..03602a3 100644
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.hh
@@ -44,7 +44,7 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
+    void unset(Addr addr) override;
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
index f46442e..3dc392f 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
@@ -78,12 +78,6 @@
     }
 }
 
-void
-MultiBitSelBloomFilter::unset(Addr addr)
-{
-    panic("ERROR: Unset should never be called in a Bloom filter");
-}
-
 bool
 MultiBitSelBloomFilter::isSet(Addr addr)
 {
diff --git a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
index 315e272..1f652b2 100644
--- a/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiBitSelBloomFilter.hh
@@ -46,7 +46,6 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.cc b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
index 5f541b5..fef8fa8 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc
@@ -81,12 +81,6 @@
 
 }
 
-void
-MultiGrainBloomFilter::unset(Addr addr)
-{
-    // not used
-}
-
 bool
 MultiGrainBloomFilter::isSet(Addr addr)
 {
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.hh b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
index 8bfd39b..c232927 100644
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.hh
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.hh
@@ -44,7 +44,6 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
diff --git a/src/mem/ruby/filters/NonCountingBloomFilter.hh b/src/mem/ruby/filters/NonCountingBloomFilter.hh
index bdd05db..9d1ad00 100644
--- a/src/mem/ruby/filters/NonCountingBloomFilter.hh
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.hh
@@ -44,7 +44,7 @@
     void clear();
     void merge(AbstractBloomFilter * other_filter);
     void set(Addr addr);
-    void unset(Addr addr);
+    void unset(Addr addr) override;
 
     bool isSet(Addr addr);
     int getCount(Addr addr);
