Callback Commands for System Dumps
A RAS infrastructure component can participate in a system dump. The component uses the RASCD_SET_SDMP_ON command that are passed to the ras_control kernel service, and then handles the appropriate commands in the callback routine. Upon the receipt of the callback commands (listed in the first column of the table), the callback routine issues the commands that has _SET in its name (listed in the second column of the table) to perform the actions.
Callback commands | Commands that are used by callbacks to perform actions | Description |
---|---|---|
RASCD_SDMP_ON | RASCD_SET_SDMP_ON | Enables a system dump for the component. |
RASCD_SDMP_OFF | RASCD_SET_SDMP_OFF | Disables a system dump for the component. |
RASCD_SDMP_LVL | RASCD_SET_SDMP_LVL | Sets the system dump detail level for this component.
The arg parameter of the ras_control service must be set with a value ranging from 0 through 9. If the level is not set, the component is dumped at the default detail level (CD_LVL_NORMAL). |
RASCD_SET_SDMP_CALLONRESTART | Causes the dump to call the callback again if
the dump is restarted. If this attribute is not set, the callback is called only once during a system dump to collect data, the location of the returned dump table is saved, and the table is used as if the dump must be restarted. This attribute is assumed if the callback returns an unlimited dump table or requests staging buffer space. |
|
RASCD_SET_SDMP_STAGING | Reserves private staging buffer space. The arg parameter must contain the number of bytes to reserve. The maximum value is 32 MB. The ENOMEM_RAS_SDMP_STAGING error code is returned if the requested storage is unavailable. You can specify a size of 0 to remove an existing staging buffer. If you need to switch from using a staging buffer to using the shared staging buffer, you must first remove the existing buffer. To remove the existing buffer, issue a RASCD_SET_SDMP_STAGING request with a size of 0, and then issue a RASCD_SET_SDMP_SHARED_STAGING request. |
|
RASCD_SET_SDMP_SHARED_STAGING | Reserves shared staging buffer space. The system
has one shared buffer for the system dump. This buffer is as large
as the largest shared buffer request. Do not use this buffer to communicate between dump components. The buffer must not contain data that must appear in the dump because the firmware-assisted dump records the data to be copied to the dump device at the next restart. Therefore, the memory that is dumped from the specified address is the last data that existed at the address. Use the buffer only for dump metadata such as dump tables or for keeping the state between the RASCD_SDMP_START and RASCD_SDMP_AGAIN invocations. The arg parameter must contain the number of bytes to reserve. The maximum value is 32 MB. The ENOMEM_RAS_SDMP_STAGING error code is returned if the requested storage is unavailable. You can specify a size of 0 to remove an existing shared staging-buffer requirement. If you need to switch from using the shared staging buffer to using your own staging buffer, you must first remove the existing requirement. To remove the existing requirement, issue a RASCD_SET_SDMP_SHARED_STAGING request with a size of 0, and then issue a RASCD_SET_SDMP_STAGING request. |
|
RASCD_SDMP_START | N/A | Provides data for the system dump. This is equivalent to the DMPRTN_START call that is passed to functions that are registered with the dmp_add or dmp_ctl kernel service. The arg parameter is of the sdmp_start_t type. The callback must set its dump table address to the sdmpst_table pointer. If the callback returns a negative value, the component is not included in the dump. |
RASCD_SDMP_AGAIN | N/A | Provides more data for the unlimited dump table.
This is equivalent to the DMPRTN_AGAIN call that is passed to functions that are registered with the dmp_add or dmp_ctl kernel service. The arg parameter is of the sdmp_start_t type. If the callback returns a negative value, no more data for that component is dumped. The component will not get an RASCD_SDMP_FINISHED call. |
RASCD_SDMP_FINISHED | N/A | Indicates that the system dump is completed.
This is equivalent to the DMPRTN_DONE call that is passed to functions that are registered with the dmp_add or dmp_ctl kernel service. The RASCD_SDMP_FINISHED call is not issued if a prior RASCD_SDMP_START or RASCD_SDMP_AGAIN call returned a negative return value. |
RASCD_SDMP_ESTIMATE | N/A | Provides an estimate of how much data will be
dumped. The arg parameter is of the sysdump_estimate_t type. The value that is returned in the se_value parameter, is the same as that for the DMPRTN_ESTIMATE invocation in AIX® 5.3. The sysdump_estimate_t structure contains the detail level at which to estimate. |
RASCD_SET_SDMP_SERIALIO | Enables serialized I/O during dump time. The
need for the flag is device-specific. Only the developer of the device
can determine whether this flag needs to be set. Use the flag only
for the devices that can be on the dump I/O path. Serializing I/O
during dump time might degrade dump performance. By default, without
the flag, I/O can occur in parallel with function calls of component-dump
tables. The action must be performed before the ras_customize routine
is called, or an error is returned. Note: Beginning with AIX® 6.1
with the 6100-02 Technology Level, the ras_control kernel service
supports the RASCD_SET_SDMP_SERIALIO action flag.
|