diff --git a/src/properties.rs b/src/properties.rs
index e548cdf..f256b9d 100644
--- a/src/properties.rs
+++ b/src/properties.rs
@@ -81,7 +81,7 @@
     ZramWritebackMaxBytes,
     ZramWritebackMaxBytesPerDay,
     ZramWritebackMinFreeSpacePercentage,
-    ZramRecompressionThresholdMib,
+    ZramRecompressionThresholdBytes,
 }
 
 impl U64Prop {
@@ -91,7 +91,7 @@
             Self::ZramWritebackMaxBytes => "zram.writeback.max_bytes",
             Self::ZramWritebackMaxBytesPerDay => "zram.writeback.max_bytes_per_day",
             Self::ZramWritebackMinFreeSpacePercentage => "zram.writeback.min_free_space_pct",
-            Self::ZramRecompressionThresholdMib => "zram.recompression.threshold_mib",
+            Self::ZramRecompressionThresholdBytes => "zram.recompression.threshold_bytes",
         }
     }
 
diff --git a/src/service.rs b/src/service.rs
index 06f4fa9..03b5310 100644
--- a/src/service.rs
+++ b/src/service.rs
@@ -143,6 +143,6 @@
     params.huge_idle = BoolProp::ZramRecompressionHugeIdleEnabled.get(params.huge_idle);
     params.idle = BoolProp::ZramRecompressionIdleEnabled.get(params.idle);
     params.huge = BoolProp::ZramRecompressionHugeEnabled.get(params.huge);
-    params.max_mib = U64Prop::ZramRecompressionThresholdMib.get(params.max_mib);
+    params.threshold_bytes = U64Prop::ZramRecompressionThresholdBytes.get(params.threshold_bytes);
     params
 }
diff --git a/src/zram/recompression.rs b/src/zram/recompression.rs
index 53740ff..651a03f 100644
--- a/src/zram/recompression.rs
+++ b/src/zram/recompression.rs
@@ -72,8 +72,8 @@
     pub idle: bool,
     /// Whether recompress huge pages or not.
     pub huge: bool,
-    /// Maximum size in MiB to recompress.
-    pub max_mib: u64,
+    /// The minimum size in bytes of zram pages to be considered for recompression.
+    pub threshold_bytes: u64,
 }
 
 impl Default for Params {
@@ -88,8 +88,8 @@
             huge_idle: true,
             idle: true,
             huge: true,
-            // 1 GiB
-            max_mib: 1024,
+            // 1 KiB
+            threshold_bytes: 1024,
         }
     }
 }
@@ -162,8 +162,8 @@
             Mode::Huge => "huge",
         };
 
-        let trigger = if params.max_mib > 0 {
-            format!("type={} threshold={}", mode, params.max_mib)
+        let trigger = if params.threshold_bytes > 0 {
+            format!("type={} threshold={}", mode, params.threshold_bytes)
         } else {
             format!("type={mode}")
         };
diff --git a/src/zram/recompression/tests.rs b/src/zram/recompression/tests.rs
index b3e7e25..41d6e44 100644
--- a/src/zram/recompression/tests.rs
+++ b/src/zram/recompression/tests.rs
@@ -97,7 +97,7 @@
     let mock = MockContext::new();
     let mut seq = Sequence::new();
     mock.setup_default_meminfo();
-    let params = Params { max_mib: 0, ..Default::default() };
+    let params = Params { threshold_bytes: 0, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
@@ -136,7 +136,7 @@
     let mock = MockContext::new();
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params = Params { max_mib: 12345, ..Default::default() };
+    let params = Params { threshold_bytes: 12345, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
@@ -163,8 +163,11 @@
     mock.recompress.expect().returning(|_| Ok(()));
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params =
-        Params { backoff_duration: Duration::from_secs(100), max_mib: 0, ..Default::default() };
+    let params = Params {
+        backoff_duration: Duration::from_secs(100),
+        threshold_bytes: 0,
+        ..Default::default()
+    };
     let suspend_history = SuspendHistory::new();
     let base_time = TimeApiImpl::get_boot_time();
     let mut zram_recompression = ZramRecompression::new();
@@ -195,8 +198,11 @@
     mock.recompress.expect().returning(|_| Ok(()));
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params =
-        Params { backoff_duration: Duration::from_secs(100), max_mib: 0, ..Default::default() };
+    let params = Params {
+        backoff_duration: Duration::from_secs(100),
+        threshold_bytes: 0,
+        ..Default::default()
+    };
     let suspend_history = SuspendHistory::new();
     let base_time = TimeApiImpl::get_boot_time();
     let mut zram_recompression = ZramRecompression::new();
@@ -232,7 +238,7 @@
     let params = Params {
         min_idle: Duration::from_secs(3600),
         max_idle: Duration::from_secs(4000),
-        max_mib: 0,
+        threshold_bytes: 0,
         ..Default::default()
     };
     let suspend_history = SuspendHistory::new();
@@ -259,7 +265,7 @@
     let params = Params {
         min_idle: Duration::from_secs(3600),
         max_idle: Duration::from_secs(4000),
-        max_mib: 0,
+        threshold_bytes: 0,
         ..Default::default()
     };
     let mut suspend_history = SuspendHistory::new();
@@ -285,7 +291,7 @@
     let params = Params {
         min_idle: Duration::from_secs(4000),
         max_idle: Duration::from_secs(3600),
-        max_mib: 0,
+        threshold_bytes: 0,
         ..Default::default()
     };
     let suspend_history = SuspendHistory::new();
@@ -305,7 +311,7 @@
 fn mark_and_recompress_mark_idle_failure() {
     let mock = MockContext::new();
     mock.setup_default_meminfo();
-    let params = Params { max_mib: 0, ..Default::default() };
+    let params = Params { threshold_bytes: 0, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
@@ -326,7 +332,7 @@
     let mock = MockContext::new();
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params = Params { huge_idle: false, max_mib: 0, ..Default::default() };
+    let params = Params { huge_idle: false, threshold_bytes: 0, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
@@ -348,7 +354,7 @@
     let mock = MockContext::new();
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params = Params { idle: false, max_mib: 0, ..Default::default() };
+    let params = Params { idle: false, threshold_bytes: 0, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
@@ -370,7 +376,7 @@
     let mock = MockContext::new();
     mock.set_idle.expect().returning(|_| Ok(()));
     mock.setup_default_meminfo();
-    let params = Params { huge: false, max_mib: 0, ..Default::default() };
+    let params = Params { huge: false, threshold_bytes: 0, ..Default::default() };
     let suspend_history = SuspendHistory::new();
     let mut zram_recompression = ZramRecompression::new();
 
