API not reporting correct memory information
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS RSD |
Won't Fix
|
Medium
|
Priyank Durugkar |
Bug Description
Intel RSD API is not reporting the correct memory information.
After allocating a node it lists the total memory as 30 GiB from TotalSystemMemory (via Systems endpoint). Going further down we can look at the MiB amount in the Memory endpoint for each System endpoint. The returned JSON for this is seen below:
root@maas:~# curl -s -k -u admin:admin -X GET https:/
{
"@odata.context" : "/redfish/
"@odata.id" : "/redfish/
"@odata.type" : "#Memory.
"Name" : "Memory",
"Id" : "376",
"Description" : "Memory description",
"MemoryType" : "DRAM",
"MemoryDevice
"BaseModuleType" : "RDIMM",
"MemoryMedia" : [ "DRAM" ],
"CapacityMiB" : 7812,
"DataWidthBits" : 64,
"BusWidthBits" : 72,
"Manufacturer" : "Micron",
"SerialNumber" : "0D861391",
"PartNumber" : "18ASF1G72PZ-
"AllowedSpeed
"FirmwareRevi
"FirmwareApiV
"FunctionClasses" : [ ],
"VendorID" : null,
"DeviceID" : null,
"RankCount" : null,
"DeviceLocator" : "B0",
"MemoryLocation" : null,
"ErrorCorrection" : null,
"Status" : {
"State" : "Enabled",
"Health" : "OK",
"HealthRollup" : null
},
"OperatingSpe
"Regions" : [ {
"RegionId" : "0",
"MemoryClas
"OffsetMiB" : 0,
"SizeMiB" : 7812
} ],
"OperatingMem
"Oem" : {
"Intel_
"@odata.type" : "#Intel.
"VoltageVolt" : 1.2
}
}
}
There are 3 other memory modules for this system so a total of 7812 * 4 = 31248
This divided by 1024 (for MiB to GiB) with truncation gives 30 GiB.
However, when MAAS commissions this machine it finds 32 GiB in total. We then deployed the machine and when I SSH'd into the machine we found this:
ubuntu@
total used free shared buff/cache available
Mem: 32064 278 31377 9 408 31375
Swap: 8191 0 8191
This shows us there is actually 32 GiB in total. We think part of the reason this is happening is perhaps with Deep Discovery the kernel memory is not taken into account of the total amount.
Changed in maasrsd: | |
milestone: | alpha → out-of-scope |
The POD Manager conforms to Redfish. In the Redfish specification the memory value is reports as GiB (Gibibytes) and MiB (Mibibytes). The total system meemory is a sum of each individual DIMM. In the API you will see four DIMMs listed as 7812 MiB. Combined these are 30.52 GiB. The 1.2 API rounds down to 30GiB.