Was ist "is- ra" im Kernel-Thread-Dump?

8

Linux-Kernel-Call-Stack-Dump enthält oft Funktionsnamen, die mit ".isra.NNN" enden, wobei NNN für einige Zahlen steht. Siehe beispielsweise hier und hier .

Was bedeutet das, was bedeutet die Zahl?

    
Kohsuke Kawaguchi 20.09.2013, 01:32
quelle

1 Antwort

18
  

isra ist das Suffix, das dem Funktionsnamen hinzugefügt wird, wenn gcc option -fipa-sra Compiler-Optimierung ausgeführt wird.

Von gcc-Handbuch :

%Vor%
  

Interprozedural skalaren Ersatz von Aggregaten, Entfernung von unbenutzten durchführen       Parameter und Ersetzung von Parametern, die durch übergebene Parameter übergeben werden       nach Wert.

     

Aktiviert auf den Ebenen -O2 , -O3 und -Os .

Alle Funktionen, die unter dieser Option optimiert sind, haben isra an ihren Namen angehängt. Ich habe in gcc code gegraben und die Funktion gefunden, die den String angehängt hat.

%Vor%

Hier ist Argument 2, const char *suffix , "isra" und notieren Sie am unteren Rand des Funktionsmakros ASM_FORMAT_PRIVATE_NAME , das clone_fn_id_num++ als drittes Argument benötigt. Dies ist die beliebige Zahl nach "isra" . Dies wird durch den Namen der Funktionen erklärt, die unter dieser Compileroption geklont werden (oder kann ein globaler Zähler sein, der alle geklonten Funktionen verfolgt).

Wenn Sie mehr wissen möchten, suchen Sie in der Datei modify_function nach gcc/tree-sra.c , was wiederum cgraph_function_versioning() aufruft, das "isra" als letztes Argument übergibt.

    
Vivek S 20.09.2013, 10:21
quelle

Tags und Links