• Huang Ying's avatar
    memory tiering: add abstract distance calculation algorithms management · 07a8bdd4
    Huang Ying authored
    Patch series "memory tiering: calculate abstract distance based on ACPI
    HMAT", v4.
    
    We have the explicit memory tiers framework to manage systems with
    multiple types of memory, e.g., DRAM in DIMM slots and CXL memory devices.
    Where, same kind of memory devices will be grouped into memory types,
    then put into memory tiers.  To describe the performance of a memory type,
    abstract distance is defined.  Which is in direct proportion to the memory
    latency and inversely proportional to the memory bandwidth.  To keep the
    code as simple as possible, fixed abstract distance is used in dax/kmem to
    describe slow memory such as Optane DCPMM.
    
    To support more memory types, in this series, we added the abstract
    distance calculation algorithm management mechanism, provided a algorithm
    implementation based on ACPI HMAT, and used the general abstract distance
    calculation interface in dax/kmem driver.  So, dax/kmem can support HBM
    (high bandwidth memory) in addition to the original Optane DCPMM.
    
    
    This patch (of 4):
    
    The abstract distance may be calculated by various drivers, such as ACPI
    HMAT, CXL CDAT, etc.  While it may be used by various code which hot-add
    memory node, such as dax/kmem etc.  To decouple the algorithm users and
    the providers, the abstract distance calculation algorithms management
    mechanism is implemented in this patch.  It provides interface for the
    providers to register the implementation, and interface for the users.
    
    Multiple algorithm implementations can cooperate via calculating abstract
    distance for different memory nodes.  The preference of algorithm
    implementations can be specified via priority (notifier_block.priority).
    
    Link: https://lkml.kernel.org/r/20230926060628.265989-1-ying.huang@intel.com
    Link: https://lkml.kernel.org/r/20230926060628.265989-2-ying.huang@intel.comSigned-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
    Tested-by: default avatarBharata B Rao <bharata@amd.com>
    Reviewed-by: default avatarAlistair Popple <apopple@nvidia.com>
    Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Cc: Wei Xu <weixugc@google.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: Rafael J Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    07a8bdd4
memory-tiers.c 20.4 KB