IPMCTL-SHOW-MEMORY-RESOURCES(1)
๐ NAME ๐
ipmctl-show-memory-resources โ shows PMem module and DDR memory allocation. bestie. it literally just tells you where your memory went. ๐
๐ธ SYNOPSIS ๐ธ
ipmctl show [OPTIONS] -memoryresources
โจ DESCRIPTION โจ
Shows PMem module and DDR memory allocation info for this platform. that's the whole vibe. one command, full breakdown of who's using what. ๐ซถ
๐ OPTIONS ๐
-h,-helpโ Displays help for the command. when in doubt, ask for help, no shame in it fr.-ddrtโ Used to specify DDRT as the desired transport protocol for the current invocation ofipmctl. picking your transport like picking an outfit. ๐-smbusโ Used to specify SMBUS as the desired transport protocol for the current invocation ofipmctl.
โ ๏ธ NOTE โ ๏ธ The-ddrtand-smbusoptions are mutually exclusive and may not be used together. it's giving "choose one, bestie." can't have both. periodt. ๐
-o(text|nvmxml),-output(text|nvmxml) โ Changes the output format. One of:"text"(default) or"nvmxml". so either the normal human-readable situation or the XML serve. โจ-u(B|MB|MiB|GB|GiB|TB|TiB),-units(B|MB|MiB|GB|GiB|TB|TiB) โ Changes the units that capacities are displayed in for this command. One of: bytes (B), megabytes (MB), mebibytes (MiB), gigabytes (GB), gibibytes (GiB), terabytes (TB) or tebibytes (TiB). yes there IS a difference between MB and MiB and yes it matters. ๐ญ
๐ EXAMPLES ๐
Shows the PMem module and DDR memory allocation. iconic. ๐ฆ
ipmctl show -memoryresources
๐ง LIMITATIONS ๐ง
okay so for this to actually work, listen up:
- The caller must have the appropriate privileges. no privileges, no results, that's the law. ๐ฎ
- The specified PMem modules must be manageable by the host software.
๐ RETURN DATA ๐
Returns a table containing the attributes listed below. here's the whole cast, main character energy each one. โญ
๐ข NOTE ๐ข Capacities from unmanageable PMem modules are not included in the following aggregated totals. they're justโฆ not invited to the party. ๐
- Volatile DDR Capacity โ Total DDR capacity that is used as volatile memory.
- Volatile PMem module Capacity โ Total PMem module capacity that is used as volatile memory.
- Total Volatile Capacity โ Total DDR and PMem module capacity that is used as volatile memory.
- AppDirect PMem module Capacity โ Total PMem module capacity used as persistent memory.
- Total AppDirect Capacity โ Total DDR and PMem module capacity used as persistent memory.
- Cache DDR Capacity โ Total DDR capacity used as a cache for PMem modules.
- Total Cache Capacity โ Total DDR capacity used as a cache for PMem modules.
- Inaccessible DDR Capacity โ Total DDR capacity that is inaccessible.
- Inaccessible PMem module Capacity โ Total PMem module capacity that is inaccessible due to any of:
- Platform configuration prevents accessing this capacity. For example,
MemoryCapacityis configured butMemoryModeis not enabled by platform FW (current Memory Mode is 1LM). - Capacity is inaccessible because it is not mapped into the System Physical Address space (SPA). This is usually due to platform firmware memory alignment requirements.
- Persistent capacity that is reserved. This capacity is the persistent memory partition capacity (rounded down for alignment) less any App Direct capacity. Reserved capacity typically results from a Memory Allocation Goal request that specified the Reserved property. This capacity is not mapped to System Physical Address space (SPA).
- Capacity that is unusable because it has not been configured.
- PMem module configured capacity but SKU prevents usage. For example,
AppDirectCapacitybut PMem module SKU is MemoryMode only.
- Platform configuration prevents accessing this capacity. For example,
- Total Inaccessible Capacity โ Total capacity of DDR and PMem module that is inaccessible.
- Physical DDR Capacity โ Total physical DDR capacity populated on the platform.
- Physical PMem module Capacity โ Total physical PMem module capacity populated on the platform.
- Total Physical Capacity โ Total physical capacity populated on the platform.
๐ฅ DETAILS ๐ฅ
PMem modules are partitioned into Memory and Persistent partitions. Memory partitions are aligned on a 1 GiB boundary by ipmctl with the Persistent partition consuming the remaining capacity. Any capacity that falls outside the Memory and Persistent partitions is InaccessibleCapacity and is not usable. If the PMem module is configured for 100% Memory Mode, then the Memory partition consumes all of the capacity and the Persistent partition has none. that's it. nothing left. ๐
The mode determines how the DDR capacities are allocated. In 1LM and AppDirect, all DDR capacity is used as additional volatile memory. In MemoryMode, all DDR capacity that the CPU will support is used as a cache for the PMem module.
Platform firmware alignment restrictions may result in some capacity from the Memory and Persistent partitions not mapped to System Physical Address space (SPA). This memory is considered InaccessibleCapacity and is not usable.
The definitions and calculations that follow intend to describe how each of the values are determined. get ready, we're doing math. ๐
๐ Definitions ๐
- Intel PMem module Current Config โ See the Intelยฎ Optaneโข Persistent Memory Software-Firmware Interface Specification, document number
556488, for details. - PMem module Partition Info โ PMem module partition information provided by PMem module firmware. See the Intelยฎ Optaneโข Firmware Interface Specification, document number
626912, for details. - PMem module Physical Capacity (PC) โ Total usable capacity reported by PMem module Partition Info
- PMem module Memory Partition Capacity (MPC) โ Volatile capacity reported by PMem module Partition Info
- PMem module Persistent Partition Capacity (PPC) โ Persistent capacity reported by PMem module Partition Info
- PMem module Volatile Memory Capacity (VMC) โ Usable volatile memory capacity as reported by platform FW via the Intelยฎ PMem module Current ConfigโVolatile Memory Size Mapped into SPA field
- PMem module Persistent Memory Capacity (PMC) โ Usable persistent memory capacity as reported by platform FW via the Intelยฎ PMem module Current ConfigโPersistent Memory Size Mapped into SPA field
- DDR Total Capacity (DDRTC) โ Total amount of memory available for use on the populated DDRs
โจ Calculations โจ
if (CurrentMode == 1LM) then
DDRCacheCapacity = 0
DDRVolatileCapacity = DDRTC
else if (CurrentMode == 2LM) then
DDRCacheCapacity = DDRTC
DDRVolatileCapacity = 0
TotalVolatileCapacity = VMC + DDRVolatileCapacity
InaccessibleCapacity = PC - PMC
if (CurrentMode != 1LM) then
InaccessibleCapacity -= VMC (rounded down for alignment)
that's the whole page bestie, you ate it. ๐
โจ this was ipmctl, dated 2024-04-22, and it lives in the IPMCTL-SHOW-MEMORY-RESOURCES(1) section of the manual โ go forth and check your memory resources, queen. ๐๐ฆ๐ธ
๐ฆ where this page comes from
- ubuntu noble: ipmctl 03.00.00.0485-1build1 ยท BSD-2-Clause AND BSD-3-Clause
- ubuntu questing: ipmctl 03.00.00.0485-1build1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms