What formula and assumptions are used to calculate the data presented in the Total Bytes, Used, and Free fields on the SPACE panel that’s presented after an ‘S” line command on the SMSGROUP panel?
It's clear that the numbers on the SMSGROUP panel are calculated differently than the ones on the SPACE panel.
Release : 16.0
Component : SYSVIEW
Some significant research into where these values come from, and in the case of SYSVIEW, the SMSGROUP values for Capacity, Free and Used come from a different place than the SPACE command.
Through my investigation into the values I can see that the SMSGROUP command uses IEFSSREQ to obtain both storage group data and volume space data. IEFSSREQ returns Capacity and Free space in megabytes which is then multiplied by 1meg to give a value that is then accumulated for the Storage group.
The SPACE command uses IBM macro LSPACE which returns more accurate data. SYSVIEW uses the values returned, cylinders, tracks per cylinder and bytes per track to calculate the capacity, free and used space. LSPACE also provides volume fragmentation and VTOC information used in the SPACE command.
So from a SYSVIEW perspective the SPACE command will provide a more accurate display when it comes to usage.
We discussed with development about switching from IEFSSREQ to LSPACE in the future but that doesn’t sound likely since LSPACE is an expensive CPU option.
We are not sure what ISMF uses to produce its numbers but it may be worth asking them if you wanted to open a case with them.
Of course with either method the values displayed are rounded using standard assembler instruction SRP in order to fit into a field that is 5 characters in size.
So a value like 39.4G is all 5 characters, so if the value was 39.47, you would only see the 39.4G.
SYSVIEW has a ROW command that you can use on these displays that will provide you with the actual numbers that were used to produce the abbreviated value.
You can use ROW on SMSGROUP or even SPACE command to see the underlying megabyte or gigabyte value.