Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Convenzioni

Accessi spuri

Causa

Gestione software Cisco IOS

Verifica degli errori di accesso ambigui

Correzione degli errori di accesso sospetti

Errori di allineamento

Causa

Verifica degli errori di allineamento

Correzione degli errori di allineamento

Interrupt spurie

Informazioni da raccogliere se si crea una richiesta di servizio TAC

Informazioni correlate

Introduzione

Lo scopo di questo documento è descrivere tre tipi di errori - accessi spuri, errori di allineamento e interrupt spuri - che possono essere rilevati sui dispositivi con software Cisco IOS®.

se il dispositivo Cisco restituisce i risultati di un comando show alignment, è possibile usare Cisco CLI Analyzer per visualizzare i potenziali errori e correggerli. Per utilizzare Cisco CLI Analyzer, è necessario essere un cliente registrato, aver eseguito l'accesso e avere JavaScript abilitato.

Prerequisiti

Requisiti

Nessun requisito specifico previsto per questo documento.

Componenti usati

Il comando non è supportato su tutte le piattaforme (solo nei processori RISC (Reduced Instruction Set Computing).

Il comando show alignment è stato introdotto nella versione 12.3(7)T ed è stato nascosto nelle versioni precedenti.

Convenzioni

Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.

Accessi spuri

L'accesso spurie è un tentativo del software Cisco IOS di accedere alla memoria in un percorso con restrizioni. Di seguito è riportato un esempio di output del log di sistema per un accesso non autorizzato:

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

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

00000000 00000000

Causa

Un accesso spurio si verifica quando un processo tenta di leggere dalla regione di 16 KB più bassa della memoria. Questa parte di memoria è riservata e non dovrebbe essere mai accessibile. Un'operazione di lettura in quest'area di memoria è in genere causata dalla restituzione di un valore inesistente a una funzione nel software o, in altre parole, dal passaggio di un puntatore null a una funzione.

Gestione software Cisco IOS

A seconda della piattaforma in uso, il software Cisco IOS gestisce gli accessi spuri in modo diverso. Sulle piattaforme in cui questo è possibile, il codice del software Cisco IOS gestisce questi accessi non validi restituendo il valore zero e registrando l'evento. Se non è supportato sulla piattaforma, il router si bloccherà con un errore SegV. Dal momento che qualsiasi accesso fittizio è inappropriato, gli accessi non autorizzati puntano sempre a un bug.

Verifica degli errori di accesso ambigui

Gli accessi spuri vengono conteggiati e registrati, se possibile, dal software Cisco IOS. Queste informazioni sono disponibili con il comando show alignment. Le informazioni di traceback sono necessarie per determinare la causa e risolvere i problemi relativi agli accessi non autorizzati.

Nota: il comando show alignment è nascosto e non documentato. Il comando non è inoltre supportato su tutte le piattaforme (solo processori RISC). Di seguito è riportato un output di esempio del comando show alignment:

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#

Correzione degli errori di accesso sospetti

Gli errori di accesso spuri sono sempre causati da un bug del software Cisco IOS. Per risolvere questo problema, aggiornare il software Cisco IOS versione 11.2(14) all'ultima versione della release train (ad esempio, se si utilizza l'immagine 11.2(x) più recente). Se il problema persiste o non è possibile aggiornare il router, contattare Cisco TAC. Quando apri una richiesta per segnalare accessi non autorizzati, includi quanto segue:

- output del comando show alignment

- output del comando show tech-support

- registri di sistema pertinenti

Errori di allineamento

Di seguito è riportato un esempio di output del log di sistema per un errore di allineamento:

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

Causa

Gli errori di allineamento sono causati da letture e scritture non allineate. Ad esempio, se si leggono due byte e l'indirizzo di memoria non è un multiplo pari di due byte, si verifica un errore di allineamento. Gli errori di allineamento sono causati da un bug del software.

Verifica degli errori di allineamento

Gli errori di allineamento vengono segnalati nel registro e registrati dal router. L'output del comando show alignment fornisce una registrazione di questi errori e dei traceback potenzialmente utili. Le tracce degli errori di allineamento possono in genere essere decodificate per rivelare la funzione che causa i problemi di allineamento.

Nota: il comando show alignment è nascosto e non documentato. Il comando non è supportato su tutte le piattaforme (è supportato solo dai router high-end). Di seguito è riportato un output di esempio del comando show alignment:

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#

Correzione degli errori di allineamento

Gli errori di allineamento possono in genere essere corretti dal software e, in tal caso, non causano un arresto anomalo. La correzione degli errori di allineamento comporta tuttavia un consumo eccessivo delle risorse del processore e può determinare una riduzione delle prestazioni. In caso di errori di allineamento continuo, il router può dedicare la maggior parte del tempo a correggerli, aumentando l'utilizzo della CPU. Questi errori vengono corretti all'interrupt.

Interrupt spurie

Gli interrupt spuri non sono gli stessi degli accessi alla memoria spurie.

Un interrupt spurio si verifica quando viene generato un interrupt non necessario per un pacchetto già elaborato, probabilmente a causa di una race condition interna o di un'inizializzazione non corretta delle routine di gestione degli interrupt. Non vi è alcun impatto percepibile sul comportamento del router a causa di interrupt spuri. Possono essere ignorati finché non vi è un numero elevato e crescente di interrupt spuri, insieme ad alcuni pacchetti scartati o a prestazioni ridotte. In caso contrario, è necessario analizzare la causa principale.

Il comando show align fornisce informazioni sugli accessi alla memoria spurie, ma non sugli interrupt spuri. Le uniche informazioni sugli interrupt spuri che possono essere ottenuti dal sistema sono nell'output show stack, dove è presente un contatore che conta quanti di essi si sono verificati.

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

Gli interrupt spuri possono essere causati da hardware difettoso o da software. Nella maggior parte dei casi, ciò non ha effetti collaterali sul comportamento previsto del router o dello switch. Sono conteggiati solo a fini di monitoraggio.

Un paio di interrupt spuri non provocano un utilizzo eccessivo della CPU. Se questo è l'unico sintomo che si verifica su un router o su uno switch e tutto il resto funziona come previsto (nessun pacchetto perso e così via), allora gli interrupt spuri possono essere ignorati.

I router Cisco basati sul processore 68k (ossia i Cisco 1000, 1600, 2500, 4000 e 7000 (RP)) possono essere configurati per generare un coredump se viene raggiunta una determinata soglia di interrupt spuri.

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

Per ulteriori informazioni sulla generazione di dump del core, vedere Creazione di dump del core. Queste informazioni potrebbero essere richieste dal nostro Technical Assistant Center in caso di calo delle prestazioni dovuto a interruzioni non corrette. In questo caso, il numero di interrupt spuri deve essere elevato e in aumento, insieme a cali di pacchetti o prestazioni ridotte.

Informazioni da raccogliere se si crea una richiesta di servizio TAC

Se dopo aver eseguito le procedure di risoluzione dei problemi descritte sopra è ancora necessaria assistenza e si desidera creare una richiesta di assistenza (solo utenti registrati) con Cisco TAC, allegare le seguenti informazioni alla richiesta per risolvere i problemi di accesso non autorizzato, errori di allineamento e interrupt spuri:

- Risoluzione dei problemi eseguita prima della creazione della richiesta di assistenza

- mostra uscita supporto tecnico (in modalità abilitazione, se possibile)

- show alignment output (se non è già incluso in show technical-support output)

- mostra output log o acquisizioni console, se disponibili

Allegare i dati raccolti alla richiesta di assistenza in formato testo normale non compresso (txt). È possibile allegare informazioni alla richiesta di assistenza caricandola utilizzando lo strumento TAC Service Request (solo utenti registrati). Se non è possibile accedere allo strumento di richiesta di assistenza, è possibile allegare le informazioni pertinenti alla richiesta di assistenza inviandola a attach@cisco.com con il numero della richiesta di assistenza in oggetto.

Nota: non ricaricare o spegnere e riaccendere manualmente il router prima di raccogliere le informazioni sopra indicate, a meno che non sia necessario per risolvere problemi di accesso non autorizzato, errori di allineamento e interruzioni non autorizzate, in quanto ciò potrebbe causare la perdita di informazioni importanti necessarie per determinare la causa principale del problema.

Informazioni correlate

- Risoluzione dei problemi relativi all'utilizzo elevato della CPU nei router Cisco

- Supporto tecnico – Cisco Systems