Skip to content

Commit

Permalink
SMDK v2.2 release
Browse files Browse the repository at this point in the history
1. CXL Hotness Monitoring Unit Support (CXL 3.2.8.2.8)
  - The CXL Hotness Monitoring Unit (CHMU) is an interface that allows software running on CXL hosts to identify the ‘hot’ memory ranges in CXL memory devices in terms of memory access counts.
  - Added a CXL device driver to support CHMU and an emulation function based on QEMU.

2. Update NDCTL(CXL_CLI): v79 → v80

3. Bug Fix
  - Fix for memory leak issue occuring when setting the 'use_auto_arena_scaling' allocator option to 'false'.
  - When 'use_auto_arena_scaling option' is set to false, the number of arenas is 1 per pool)
    (When 'true', the arena is generated in proportion to the number of CPUs as before)
  - Reference: OpenMPDK#31

Signed-off-by: JunhyeokIm <junhyeok.im@samsung.com>
Signed-off-by: WonjaeLee <wj28.lee@samsung.com>
Signed-off-by: SeungjunHa <seungjun.ha@samsung.com>
Signed-off-by: JehoonPark <jehoon.park@samsung.com>
Signed-off-by: HojinNam <hj96.nam@samsung.com>
Signed-off-by: YoungshinPark <yshin0.park@samsung.com>
Signed-off-by: HeesooKim <habil.kim@samsung.com>
  • Loading branch information
junhyeok-im committed Dec 5, 2024
1 parent 7b45968 commit fd3f900
Show file tree
Hide file tree
Showing 51 changed files with 2,649 additions and 130 deletions.
21 changes: 19 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
# Changelog

## v2.2: CHMU Support / Userspace CLI Tool

**1. CXL Hotness Monitoring Unit Support (CXL 3.2.8.2.8)**
- The CXL Hotness Monitoring Unit (CHMU) is an interface that allows software running on CXL hosts to identify the ‘hot’ memory ranges (i.e., memory ranges with higher access frequency relative to other memory ranges) in CXL memory devices in terms of memory access counts.
- Added a CXL device driver to support CHMU and an emulation function based on QEMU.

**2. CXL-CLI**
- Baseline v79 → v80

**3. Bug Fix**
- Fix for memory leak issue occuring when setting the 'use_auto_arena_scaling' allocator option to 'false'.
- When 'use_auto_arena_scaling option' is set to false, the number of arenas is 1 per pool.
- When 'true', the arena is generated in proportion to the number of CPUs as before.
- Reference: https://github.com/OpenMPDK/SMDK/issues/31

<br>

## v2.1: Intelligent Tiering Engine / Userspace CLI Tool

**1. Intelligent Tiering Engine**
- BW-Aware tiering: Weighted page allocation
> The weight ratio has been changed to be adjusted in more finely. <br>
> ~v2.0: Set weight to zero for saturated node, and max bandwidth of node for others. <br>
> v2.1~: Set weight to as much as available bandwidth based on max bandwidth.
> ~ v2.0: Set weight to zero for saturated node, and max bandwidth of node for others. <br>
> v2.1 ~: Set weight to as much as available bandwidth based on max bandwidth.
**2. Kernel**
- Baseline v6.4 -> v6.9
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
## Announcing the Release of Scalable Memory Development Kit (SMDK) v2.1
## Announcing the Release of Scalable Memory Development Kit (SMDK) v2.2

We are pleased to announce the release of SMDK v2.1 to leverage and help CXL ecosystem and industry.
We are pleased to announce the release of SMDK v2.2 to leverage and help CXL ecosystem and industry.
SMDK consists of the following components: plugin, library, cli tool, kernel, testcases, and a guide providing an example workload test.

We previously published pre-release articles introducing SMDK to the industry, as well as demonstrated SMDK functionality at 2024 Dell Tech World, 2024 Red Hat Summit, 2024 MemCon, 2023 Flash Memory Summit, 2023 OCP APAC, 2022 SuperComputing, 2022 HPE Discover, 2021 OCP Global Summit, and so on.
We previously published pre-release articles introducing SMDK to the industry, as well as demonstrated SMDK functionality at 2024 Super Comptuing, 2024 OCP Global Summit, 2024 FMS, 2024 Dell Tech World, 2024 Red Hat Summit, 2024 MemCon, 2023 Flash Memory Summit, 2023 OCP APAC, 2022 SuperComputing, 2022 HPE Discover, 2021 OCP Global Summit, and so on.
Currently, SMDK has been successfully integrated and tested with many industry partners on a variety of purposes and application workloads, utilizing Samsung’s CXL Memory Expander:

https://news.samsung.com/global/samsung-introduces-industrys-first-open-source-software-solution-for-cxl-memory-platform
Expand Down
56 changes: 55 additions & 1 deletion lib/cxl_cli/Documentation/cxl/cxl-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,60 @@ OPTIONS
--region::
Specify CXL region device name(s), or device id(s), to filter the listing.

-L::
--media-errors::
Include media-error information. The poison list is retrieved from the
device(s) and media_error records are added to the listing. Apply this
option to memdevs and regions where devices support the poison list
capability. "offset:" is relative to the region resource when listing
by region and is the absolute device DPA when listing by memdev.
"source:" is one of: External, Internal, Injected, Vendor Specific,
or Unknown, as defined in CXL Specification v3.1 Table 8-140.

----
# cxl list -m mem9 --media-errors -u
{
"memdev":"mem9",
"pmem_size":"1024.00 MiB (1073.74 MB)",
"pmem_qos_class":42,
"ram_size":"1024.00 MiB (1073.74 MB)",
"ram_qos_class":42,
"serial":"0x5",
"numa_node":1,
"host":"cxl_mem.5",
"media_errors":[
{
"offset":"0x40000000",
"length":64,
"source":"Injected"
}
]
}

# cxl list -r region5 --media-errors -u
{
"region":"region5",
"resource":"0xf110000000",
"size":"2.00 GiB (2.15 GB)",
"type":"pmem",
"interleave_ways":2,
"interleave_granularity":4096,
"decode_state":"commit",
"media_errors":[
{
"offset":"0x1000",
"length":64,
"source":"Injected"
},
{
"offset":"0x2000",
"length":64,
"source":"Injected"
}
]
}
----

-v::
--verbose::
Increase verbosity of the output. This can be specified
Expand All @@ -431,7 +485,7 @@ OPTIONS
devices with --idle.
- *-vvv*
Everything *-vv* provides, plus enable
--health and --partition.
--health, --partition, and --media-errors.

--debug::
If the cxl tool was built with debug enabled, turn on debug
Expand Down
27 changes: 0 additions & 27 deletions lib/cxl_cli/cxl/event_trace.h

This file was deleted.

3 changes: 3 additions & 0 deletions lib/cxl_cli/cxl/filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ struct cxl_filter_params {
bool fw;
bool alert_config;
bool dax;
bool media_errors;
#ifdef ENABLE_SMDK_PLUGIN
bool soft_interleaving;
bool list_node;
Expand Down Expand Up @@ -93,6 +94,8 @@ static inline unsigned long cxl_filter_to_flags(struct cxl_filter_params *param)
flags |= UTIL_JSON_ALERT_CONFIG;
if (param->dax)
flags |= UTIL_JSON_DAX | UTIL_JSON_DAX_DEVS;
if (param->media_errors)
flags |= UTIL_JSON_MEDIA_ERRORS;
return flags;
}

Expand Down
Loading

0 comments on commit fd3f900

Please sign in to comment.