La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
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.
Nessun requisito specifico previsto per questo documento.
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.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
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
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.
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.
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#
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
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
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.
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#
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.
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.
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: |
---|
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. |