  Modern workloads are demanding increasingly larger memory capacity. Compute
Express Link (CXL)-based memory tiering has emerged as a promising solution for
addressing this trend by utilizing traditional DRAM alongside slow-tier
CXL-memory devices in the same system. Unfortunately, most prior tiering
systems are recency-based, which cannot accurately identify hot and cold pages,
since a recently accessed page is not necessarily a hot page. On the other
hand, more accurate frequency-based systems suffer from high memory and runtime
overhead as a result of tracking large memories.
  In this paper, we propose FreqTier, a fast and accurate frequency-based
tiering system for CXL memory. We observe that memory tiering systems can
tolerate a small amount of tracking inaccuracy without compromising the overall
application performance. Based on this observation, FreqTier probabilistically
tracks the access frequency of each page, enabling accurate identification of
hot and cold pages while maintaining minimal memory overhead. Finally, FreqTier
intelligently adjusts the intensity of tiering operations based on the
application's memory access behavior, thereby significantly reducing the amount
of migration traffic and application interference.
  We evaluate FreqTier on two emulated CXL memory devices with different
bandwidths. On the high bandwidth CXL device, FreqTier can outperform
state-of-the-art tiering systems while using 4$\times$ less local DRAM memory
for in-memory caching workloads. On GAP graph analytics and XGBoost workloads
with 1:32 local DRAM to CXL-memory ratio, FreqTier outperforms prior works by
1.04$-$2.04$\times$ (1.39$\times$ on average). Even on the low bandwidth CXL
device, FreqTier outperforms AutoNUMA by 1.14$\times$ on average.
