GNU/Linux >> Linux Esercitazione >  >> Linux

Come intrappolare l'accesso alla memoria non allineato?

ARM Linux mantiene un elenco di gestori di allineamento eccezioni,

$ cat /proc/cpu/alignment 
User:           0
System:         0
Skipped:        0
Half:           0
Word:           0
DWord:          0
Multi:          0
User faults:    0 (ignored)

È attivo solo con procfs , ma è difficile immaginare un sistema senza procfs . Il codice specifico che gestisce questo è in allineamento.c. Puoi usare echo 3 > /proc/cpu/alignment per avere una correzione di Linux l'istruzione e fornire alcuni dmesg produzione. Generalmente, la gestione degli accessi non allineati tramite emulazione è molto inefficiente. È meglio correggere il codice. Il segnale opzione con un debugger collegato dovrebbe fornire qualche indizio sull'origine dell'eccezione.

Leggi il manuale.;-)


Linux può eseguire la correzione per te o avvisarti dell'accesso.

Puoi abilitare il comportamento in /proc/cpu/alignment, vedi http://www.mjmwired.net/kernel/Documentation/arm/mem_alignment per una spiegazione dei diversi valori.

0 - Do nothing (default behavior)
1 - Warning in kernel-log with PC and Memory-Address printed.
2 - Fixup error
3 - Warn and Fixup
4 - Send a SIGBUS to the process
5 - Send SIGBUS and output Warning

Linux
  1. Come accedere agli indirizzi fisici dallo spazio utente in Linux?

  2. Come posso osservare la larghezza di banda della memoria?

  3. Come limitare l'utilizzo della memoria dell'applicazione?

  4. Come ridurre l'utilizzo della memoria ClamAV?

  5. Come si accede a Webmin?

Come cancellare la memoria di scambio in Linux

Come accedere alle impostazioni del firmware UEFI in Windows 10

Come disabilitare permanentemente lo scambio in Linux

Come accedere a phpMyAdmin in cPanel?

Come funziona la memoria di scambio in Linux?

Come profilare l'utilizzo della memoria?