Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Acessos artificiais

Causa

Manejo do Cisco IOS Software

Verificando os erros de acesso artificial

Corrigindo erros de acessos artificiais

Erros de alinhamento

Causa

Verificando os erros de alinhamento

Corrigindo erros de alinhamento

Interrupções artificiais

Informações a serem coletadas se você criar uma solicitação de serviço TAC

Informações Relacionadas

Introduction

A finalidade deste documento é descrever três tipos de erros (acessos artificiais, erros de alinhamento e interrupções artificiais) que podem ser encontradas nos dispositivos que executam o software Cisco IOS®.

Se você tiver a saída de um comando show alignment de seu dispositivo Cisco, poderá usar o Cisco CLI Analyzer para exibir possíveis problemas e correções. Para usar o Cisco CLI Analyzer, você deve ser um cliente registrado, estar conectado e com o JavaScript habilitado.

Prerequisites

Requirements

Não existem requisitos específicos para este documento.

Componentes Utilizados

O comando não é suportado em todas as plataformas (somente nos processadores RISC [redução do conjunto de instruções]).

O comando show alignment foi introduzido no 12.3(7)T e foi ocultado em versões anteriores.

Conventions

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Acessos artificiais

O acesso artificial é uma tentativa do software Cisco IOS de acessar a memória em um local restrito. Veja abaixo um exemplo do registro do sistema para um acesso artificial:

%ALIGN-3-SPURIOUS: Spurious memory access made at 0x60968C44 reading 0x0

%ALIGN-3-TRACE: -Traceback= 60968C44 60269808 602389D8 00000000 00000000 00000000

00000000 00000000

Causa

O acesso artificial ocorre quando um processo tenta ler a parte mais baixa da região da memória de 16 KB. Essa parte da memória é reservada e nunca deve ser acessada. Uma operação de leitura nessa região da memória é geralmente causada quando um não existente é retornado para uma função no software ou, em outras palavras, quando um ponteiro nulo é transmitido para uma função.

Manejo do Cisco IOS Software

Dependendo da plataforma, o Cisco IOS Software trata acessos artificiais de maneira diferente. Em plataformas em que isso é possível, o código do software da Cisco IOS controla estes acessos inválidos retornando um valor de zero e registrando o evento. Se não houver suporte para isso na plataforma, o roteador travará com um erro SegV. Como qualquer acesso artificial é inapropriado, o acesso artificial sempre aponta para um erro.

Verificando os erros de acesso artificial

Acessos artificiais são contados e registrados, se possível, pelo Cisco IOS Software. Essas informações estão disponíveis com o comando show alignment. As informações de retorno de rastreamento são necessárias para determinar a causa e a correção dos acessos artificiais.

Observação: o comando show alignment está oculto e não documentado. O comando também não é suportado em todas as plataformas (apenas em processadores de Computação de conjunto de instruções reduzido [RISC]). Um exemplo de saída do comando show alignment é fornecido abaixo:

Router#show alignment

Alignment data for:

GS Software (RSP-PV-M), Version 11.1(26.1)CC, EARLY DEPLOYMENT MAINTENANCE INTER

IM SOFTWARE

Compiled Thu 27-May-99 20:48 by jjgreen

No alignment data has been recorded.

Total Spurious Accesses 167110746, Recorded 2

Address  Count  Traceback

0  10474  0x6012D488  0x6020FFB4 0x601D5CE0

0  49008  0x6012D488  0x6020D25C 0x6020E744 0x602106B4

Router#

Corrigindo erros de acessos artificiais

Erros de acesso artificial são sempre causados por um erro do Cisco IOS Software. Para corrigir isso, atualize para a versão mais recente na versão de treinamento (por exemplo, se você estiver executando o Cisco IOS Software Release 11.2(14), atualize para a imagem 11.2(x) mais recente. Se isto não resolver o problema ou se não for possível atualizar o roteador, entre em contato com o TAC da Cisco. Ao abrir um caso para reportar acessos artificiais, inclua o seguinte:

- saída do comando show alignment

- saída do comando show tech-support

- registros do sistema relevantes

Erros de alinhamento

Este é um exemplo da saída de registro do sistema para um erro de alinhamento:

%ALIGN-3-CORRECT: Alignment correction made at 0x60262478 reading/writing 0x60A9FF5C

Causa

Os erros de alinhamento são causados por leituras e gravações desalinhadas. Por exemplo, uma leitura de dois bytes na qual o endereço de memória não seja um múltiplo par de dois bytes é um erro de alinhamento. Erros de alinhamento são causados por um erro de software.

Verificando os erros de alinhamento

Os erros de alinhamento são reportados no log e registrados pelo roteador. A saída do comando show alignment fornece um registro desses erros juntamente com rastreamentos potencialmente úteis. Os rastreamentos para erros de alinhamento geralmente podem ser decodificados para revelar a função que causa os problemas de alinhamento.

Observação: o comando show alignment está oculto e não documentado. O comando também não é suportado em todas as plataformas (somente os roteadores avançados suportam isso). Um exemplo do comando show alignment é fornecido abaixo:

Router#show alignment

Alignment data for:

RSP Software (RSP-ISV-M), Version 11.3(3a), RELEASE SOFTWARE (fc1)

Compiled Fri 01-May-98 18:28 by phanguye

Total Corrections 6, Recorded 2, Reads 6, Writes 0

Initial Initial

Address    Count  Access  Type  Traceback

60EF3765   3      32bit   read  0x60262474 0x601AC594 0x601AC580

60EF3761   3      32bit   read  0x60262478 0x601AC594 0x601AC580

No spurious memory references have been recorded.

Router#

Corrigindo erros de alinhamento

Os erros de alinhamento geralmente podem ser corrigidos pelo software e, em caso afirmativo, não causarão um travamento. No entanto, corrigir erros de alinhamento consome recursos do processador e pode resultar em uma penalidade de desempenho. Se houver erros contínuos de alinhamento, o roteador poderá passar a maior parte do tempo corrigindo-os, aumentando a utilização da CPU. Esses erros são corrigidos na interrupção.

Interrupções artificiais

As interrupções artificiais não são as mesmas que os acessos artificiais à memória.

Uma interrupção artificial ocorre quando uma interrupção desnecessária é gerada para um pacote já processado, possivelmente devido a uma condição de corrida interna ou inicialização incorreta das rotinas de tratamento de interrupções. Não há nenhum impacto perceptível no comportamento do roteador devido a interrupções artificiais. Elas podem ser seguramente ignoradas desde que não haja um número cada vez maior de interrupções artificiais, junto com alguns pacotes perdidos ou com desempenho piorado. Caso contrário, a causa raiz deve ser investigada.

O comando show align fornece informações sobre acessos artificiais à memória, mas não interrupções artificiais. A única informação sobre interrupções artificiais que pode ser obtida no sistema é a saída das pilhas de exibição, em que há um contador que conta quantas ocorreram.

Router#show stacks

Minimum process stacks:

Free/Size   Name

3692/4000   DHCPD Receive

4796/6000   Router Init

1904/4000   Init

3408/4000   RADIUS INITCONFIG

4228/5000   DHCP Client

2468/4000   Exec

Interrupt level stacks:

Level    Called Unused/Size  Name

3           0   3000/3000  Serial interface state change interrupt

4    54351439   1760/3000  Network interfaces

5       64181   2872/3000  Console Uart

Spurious interrupts: 29

É possível que as interrupções artificiais sejam causadas por hardware ou software defeituoso. Na maioria das vezes, isso não tem efeito colateral no comportamento esperado do roteador ou switch. Só são contados para efeitos de monitorização.

Algumas interrupções artificiais não causam muita utilização da CPU. Se esse for o único sintoma que ocorre em um roteador ou switch e tudo o mais estiver funcionando conforme esperado (nenhum pacote cair e assim por diante), as interrupções artificiais podem ser ignoradas.

Os roteadores Cisco baseados no processador de 68 k (ou seja, o Cisco 1000, 1600, 2500, 4000 e 7000 (RP)) podem ser configurados para gerar um dump central se um certo limiar de interrupções artificiais for atingido.

Router(config)#exception ?

core-file           Set name of core dump file

crashinfo           Crashinfo collection

dump                Set name of host to dump to

flash               Set the device and erase permission

memory              Memory leak debugging

protocol            Set protocol for sending core file

region-size         Size of region for exception-time memory pool

spurious-interrupt  Crash after a given number of spurious interrupts

Router(config)#exception spurious-interrupt ?

<1-4294967295>  Spurious interrupt threshold

Para obter mais informações sobre a geração do coredump, consulte Criação de lixos principais. Essas informações poderão ser solicitadas pelo Centro de Assistência Técnica se houver degradação de desempenho devido a interrupções artificiais. Se for esse o caso, deve haver um número cada vez maior de interrupções artificiais, juntamente com algumas quedas de pacotes ou desempenho degradado.

Informações a serem coletadas se você criar uma solicitação de serviço TAC

Se você ainda precisar de assistência após seguir as etapas de solução de problemas acima e quiser criar uma solicitação de serviço (somente clientes registrados) com o Cisco TAC, anexe as seguintes informações ao seu caso para Troubleshooting de acessos artificiais, erros de alinhamento e interrupções artificiais:

- Troubleshooting realizado antes da criação da solicitação de serviço

- saída show technical-support (no modo enable, se possível)

- show alignment output (se ainda não estiver incluído na saída de suporte técnico de apresentação)

- mostrar registro de saída ou capturas de tela do console, se disponível

Anexe os dados coletados à sua requisição de serviço em um texto não compactado e simples (.txt). Você pode anexar informações à sua requisição de serviço ao fazer o upload dela com a Ferramenta TAC Service Request Tool (somente para clientes registrados). Se não conseguir acessar a Service Request Tool, você poderá anexar as informações relevantes à sua solicitação de serviço enviando-as para attach@cisco.com com o número da solicitação de serviço na linha de assunto da sua mensagem.

Observação: não recarregue ou desligue manualmente o roteador antes de coletar as informações acima, a menos que seja necessário para solucionar problemas de acessos artificiais, erros de alinhamento e interrupções artificiais, pois isso pode causar a perda de informações importantes necessárias para determinar a causa raiz do problema.

Informações Relacionadas

- Troubleshooting de Alta Utilização de CPU em Cisco Routers

- Suporte Técnico - Cisco Systems