dmp_add Serviço do kernel

Propósito

Especifica dados a serem incluídos em um dump do sistema, adicionando uma entrada na tabela de dump master. Os convocados devem usar o dmp_ctl Serviço de Kernel. Este serviço é fornecido para fins de compatibilidade.

Sintaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/dump.h>
int dmp_add
( cdt_func)
struct cdt * ( (*cdt_func) (  ));
  

Descrição

Extensões do kernel usam o serviço dmp_add para registrar áreas de dados a serem incluídas em um dump do sistema. O serviço dmp_add adiciia uma entrada na tabela de dump master. Uma entrada de tabela de dump master é um ponteiro para uma função fornecida pela extensão do kernel que será chamada pela rotina do dump do kernel quando ocorre um dump do sistema. A função deve retornar um ponteiro para uma estrutura de tabela de dump de componentes.

Quando ocorre um dump, a rotina do dump do kernel chama a função especificada pelo parâmetro cdt_func duas vezes. Na primeira chamada, um argumento de 1 indica que a rotina do dump do kernel está começando a fazer o dump dos dados especificados pela tabela de dump do componente. Na segunda chamada, um argumento de 2 indica que a rotina do dump do kernel terminou de despejar os dados especificados pela tabela de dump do componente. As extensões do kernel devem alocar e fixar suas tabelas de dump de componentes e chamar o serviço dmp_add durante a inicialização. As entradas na tabela de dump do componente podem ser preenchidas posteriormente. A rotina cdt_func não deve tentar alocar memória quando ela é chamada.

Observação: na versão 7.1AIX, essa função serializa automaticamente as funções CDT com E/S durante o tempo de despejo. A necessidade dessa função é dispositivo específico. Somente o desenvolvedor do dispositivo pode determinar se essa rotina precisa ser usada. Ele é recomendado apenas para dispositivos que podem estar no caminho de E/S de dump. Serializar E/S durante o tempo de dump pode degrar o desempenho do dump. Os dispositivos que não estão no caminho do dump devem utilizar a rotina dmp_ctl ou a interface de dump do sistema RAS.

A Tabela Dump do Componente

A estrutura da tabela de dump do componente especifica áreas de memória a serem incluídas no dump do sistema. O tipo de estrutura (struct cdt) é definido no arquivo /usr/include/sys/dump.h . Uma estrutura cdt consiste em um cabeçalho de comprimento fixo (estruturacdt_head ) e uma matriz de uma ou mais estruturas cdt_entry . A estrutura cdt_head contém um campo de nome de componente, que deve ser preenchido com o nome da extensão do kernel, e o comprimento da tabela de dump do componente. Cada estrutura cdt_entry descreve uma área de dados contígua, dando um ponteiro para a área de dados, seu comprimento, um cadastro do segmento e um nome para a área de dados.

Uso da Rotina de Formatação

Cada extensão kernel que inclui dados no dump do sistema pode instalar uma rotina de formatação exclusiva no diretório /var/adm/ras/dmprtns directory.The da rotina de formatação deve corresponder ao campo de nome do componente da tabela de dump do componente correspondente..

O arquivo de imagem de dump inclui uma cópia de cada tabela de dump de componente usada para fazer dump da memória do memory.A é fornecido com o bos.sysmgt.serv_aid no diretório /usr/samples/dumpfmt

Organização do Arquivo de Imagem do Dump

A memória despejada para cada extensão do kernel é estabelecida da seguinte forma no arquivo de imagem do dump. A tabela de dump do componente é seguida por um bitmap para a primeira área de dados, depois a primeira área de dados em si, depois um bitmap para a próxima área de dados, a próxima área de dados em si, e assim por diante.

O bitmap para uma área de dados específica indica quais páginas da área de dados estão presentes na imagem do dump e quais não são. Páginas que não estavam na memória quando o dump ocorreu não foram despejadas. O bit menos significativo do primeiro byte do bitmap é configurado para 1 (um) se a primeira página estiver presente. O próximo bit menos significativo indica a presença ou ausência da segunda página e assim por diante.

Uma macro para determinar o tamanho de um bitmap é fornecida no arquivo /usr/include/sys/dump.h .

Parâmetros

Item Descrição
cdt_func Especifica uma função que retorna um ponteiro para uma entrada de tabela de dump de componentes. A função e a entrada da tabela de dump de componente ambos devem residir na memória global pintada.

Ambiente de Execução

O serviço kernel dmp_add pode ser chamado a partir do ambiente de processo apenas.

Valores De Retorno

Item Descrição
0 Indica uma operação bem-sucedida.
-1 Indica que o ponteiro de função a ser adicionado já está presente na tabela de dump master.