~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/Documentation/jitdump-specification.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/perf/Documentation/jitdump-specification.txt (Version linux-6.12-rc7) and /tools/perf/Documentation/jitdump-specification.txt (Version linux-4.4.302)


  1 JITDUMP specification version 2                   
  2 Last Revised: 09/15/2016                          
  3 Author: Stephane Eranian <eranian@gmail.com>       
  4                                                   
  5 ----------------------------------------------    
  6 | Revision  |    Date    | Description            
  7 ----------------------------------------------    
  8 |   1       | 09/07/2016 | Initial revision       
  9 ----------------------------------------------    
 10 |   2       | 09/15/2016 | Add JIT_CODE_UNWIND    
 11 ----------------------------------------------    
 12                                                   
 13                                                   
 14 I/ Introduction                                   
 15                                                   
 16                                                   
 17 This document describes the jitdump file forma    
 18                                                   
 19 The format is not specific to any particular p    
 20                                                   
 21 The format of the file is binary. It is self-d    
 22                                                   
 23                                                   
 24 II/ Overview of the format                        
 25                                                   
 26                                                   
 27 The format requires only sequential accesses,     
 28                                                   
 29 The header is followed by a series of records,    
 30                                                   
 31 Each entry in the file is timestamped. All tim    
 32                                                   
 33                                                   
 34 III/ Jitdump file header format                   
 35                                                   
 36 Each jitdump file starts with a fixed size hea    
 37                                                   
 38                                                   
 39 * uint32_t magic     : a magic number tagging     
 40 * uint32_t version   : a 4-byte value represen    
 41 * uint32_t total_size: size in bytes of file h    
 42 * uint32_t elf_mach  : ELF architecture encodi    
 43 * uint32_t pad1      : padding. Reserved for f    
 44 * uint32_t pid       : JIT runtime process ide    
 45 * uint64_t timestamp : timestamp of when the f    
 46 * uint64_t flags     : a bitmask of flags         
 47                                                   
 48 The flags currently defined are as follows:       
 49  * bit 0: JITDUMP_FLAGS_ARCH_TIMESTAMP : set i    
 50                                                   
 51 IV/ Record header                                 
 52                                                   
 53 The file header is immediately followed by rec    
 54                                                   
 55 The record header is specified in order as fol    
 56 * uint32_t id        : a value identifying the    
 57 * uint32_t total_size: the size in bytes of th    
 58 * uint64_t timestamp : a timestamp of when the    
 59                                                   
 60 The following record types are defined:           
 61  * Value 0 : JIT_CODE_LOAD      : record descr    
 62  * Value 1 : JIT_CODE_MOVE      : record descr    
 63  * Value 2 : JIT_CODE_DEBUG_INFO: record descr    
 64  * Value 3 : JIT_CODE_CLOSE     : record marki    
 65  * Value 4 : JIT_CODE_UNWINDING_INFO: record d    
 66                                                   
 67  The payload of the record must immediately fo    
 68                                                   
 69 V/ JIT_CODE_LOAD record                           
 70                                                   
 71                                                   
 72   The record has the following fields followin    
 73   * uint32_t pid: OS process id of the runtime    
 74   * uint32_t tid: OS thread identification of     
 75   * uint64_t vma: virtual address of jitted co    
 76   * uint64_t code_addr: code start address for    
 77   * uint64_t code_size: size in bytes of the g    
 78   * uint64_t code_index: unique identifier for    
 79   * char[n]: function name in ASCII including     
 80   * native code: raw byte encoding of the jitt    
 81                                                   
 82   The record header total_size field is inclus    
 83   * record header                                 
 84   * fixed-sized fields                            
 85   * function name string, including terminatio    
 86   * native code length                            
 87   * record specific variable data (e.g., array    
 88                                                   
 89 The code_index is used to uniquely identify ea    
 90                                                   
 91 The format supports empty functions with no na    
 92                                                   
 93                                                   
 94 VI/ JIT_CODE_MOVE record                          
 95                                                   
 96   The record type is optional.                    
 97                                                   
 98   The record has the following fields followin    
 99   * uint32_t pid          : OS process id of t    
100   * uint32_t tid          : OS thread identifi    
101   * uint64_t vma          : new virtual addres    
102   * uint64_t old_code_addr: previous code addr    
103   * uint64_t new_code_addr: alternate new code    
104   * uint64_t code_size    : size in bytes of t    
105   * uint64_t code_index   : index referring to    
106                                                   
107                                                   
108 The MOVE record can be used in case an already    
109                                                   
110 The JIT_CODE_MOVE record cannot come before th    
111                                                   
112 The code size of the function cannot change.      
113                                                   
114                                                   
115 VII/ JIT_DEBUG_INFO record                        
116                                                   
117 The record type is optional.                      
118                                                   
119 The record contains source lines debug informa    
120                                                   
121 The record has the following fields following     
122   * uint64_t code_addr: address of function fo    
123   * uint64_t nr_entry : number of debug entrie    
124   * debug_entry[n]: array of nr_entry debug en    
125                                                   
126 The debug_entry describes the source line info    
127 * uint64_t code_addr: address of function for     
128 * uint32_t line     : source file line number     
129 * uint32_t discrim  : column discriminator, 0     
130 * char name[n]      : source file name in ASCI    
131                                                   
132 The debug_entry entries are saved in sequence     
133 They need to be walked sequentially. The next     
134                                                   
135 IMPORTANT:                                        
136   The JIT_CODE_DEBUG for a given function must    
137                                                   
138                                                   
139 VIII/ JIT_CODE_CLOSE record                       
140                                                   
141                                                   
142 The record type is optional.                      
143                                                   
144 The record is used as a marker for the end of     
145                                                   
146 The JIT_CODE_CLOSE record does not have any sp    
147                                                   
148                                                   
149 IX/ JIT_CODE_UNWINDING_INFO                       
150                                                   
151                                                   
152 The record type is optional.                      
153                                                   
154 The record is used to describe the unwinding i    
155                                                   
156 The record has the following fields following     
157                                                   
158 uint64_t unwind_data_size   : the size in byte    
159 uint64_t eh_frame_hdr_size  : the size in byte    
160 uint64_t mapped_size        : the size of the     
161 const char unwinding_data[n]: an array of unwi    
162                                                   
163                                                   
164 The EH Frame header follows the Linux Standard    
165                                                   
166                                                   
167 The EH Frame follows the LSB specification as     
168                                                   
169                                                   
170 NOTE: The mapped_size is generally either the     
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php