Wie kann ich nicht ausgerichtete Speicherzugriffe auf Linux/aarch64 (Cortex-a57) protokollieren?Ungelernte Zugriffe auf Linux/aarch64 protokollieren und debuggen
Ich verstehe, gibt es zwei verschiedene Dinge hier beteiligt.
- Auswählen ein Interrupt von der CPU auf einem nicht ausgerichteten Zugriff erhöhen (dh unterbricht für nicht ausgerichtete Speicherzugriffe, die sonst durch die CPU auf einem unterstützt werden Leistungskosten)
- wie soll diese Interrupts in Linux zu handhaben (log sie/Feuer eine SIGBUS/soft unaligned Zugang zu emulieren)
Mein Problem ist, dass zuerst, ich weiß nicht, wie die Steuerregister der CPU verwalten von mein Programm (noch wenn ich sollte eigentlich tun es in meiner Userspace-Anwendung), und zweitens scheint die /proc/cpu/alignment
Schnittstelle für die Verwaltung der nicht ausgerichteten Zugriffe in Linux (ich benutze einen Kernel 4.4.0), siehe Link unten.
nicht ausgerichtete Zugriffe aus dem Kernel verwalten: https://www.kernel.org/doc/Documentation/arm/mem_alignment (wahrscheinlich out-of-date)
Verwandte: diese Does AArch64 support unaligned access?
So ist es nicht möglich für den Kernel eine andere Behandlung von Ausrichtungsfehlern für sich selbst und den Benutzerbereich einzustellen? Wie Sie bereits erwähnt haben, ist Profiling der Weg dorthin. Ich habe mich gefragt, ob man noch strengere Gedächtniskontrollen benötigt (wenn das Sinn macht) –