1 What: /sys/kernel/debug/iommu/intel/ 2 Date: December 2023 3 Contact: Jingqi Liu <Jingqi.liu@intel.co 4 Description: 5 This file dumps all the regist 6 7 Example in Kabylake: 8 9 :: 10 11 $ sudo cat /sys/kernel/debug/ 12 13 IOMMU: dmar0 Register Base Ad 14 15 Name Offse 16 VER 0x00 17 GCMD 0x18 18 GSTS 0x1c 19 FSTS 0x34 20 FECTL 0x38 21 22 [...] 23 24 IOMMU: dmar1 Register Base Ad 25 26 Name Offse 27 VER 0x00 28 GCMD 0x18 29 GSTS 0x1c 30 FSTS 0x34 31 FECTL 0x38 32 33 [...] 34 35 IOMMU: dmar2 Register Base Ad 36 37 Name Offse 38 VER 0x00 39 GCMD 0x18 40 GSTS 0x1c 41 FSTS 0x34 42 FECTL 0x38 43 44 [...] 45 46 What: /sys/kernel/debug/iommu/intel/ 47 Date: December 2023 48 Contact: Jingqi Liu <Jingqi.liu@intel.co 49 Description: 50 This file dumps the table entr 51 remapping and Interrupt postin 52 53 Example in Kabylake: 54 55 :: 56 57 $ sudo cat /sys/kernel/debug/ 58 59 Remapped Interrupt supported 60 IR table address:100900000 61 62 Entry SrcID DstID Vct IR 63 0 00:0a.0 00000080 24 00 64 1 00:0a.0 00000001 ef 00 65 66 Remapped Interrupt supported 67 IR table address:100300000 68 Entry SrcID DstID Vct IR 69 0 00:02.0 00000002 26 00 70 71 [...] 72 73 **** 74 75 Posted Interrupt supported on 76 IR table address:100900000 77 Entry SrcID PDA_high PDA_lo 78 79 What: /sys/kernel/debug/iommu/intel/ 80 Date: December 2023 81 Contact: Jingqi Liu <Jingqi.liu@intel.co 82 Description: 83 This file dumps Intel IOMMU DM 84 as root table, context table, 85 table entries in debugfs. For 86 support PASID, and hence PASID 87 '-1' and other PASID related f 88 89 Example in Kabylake: 90 91 :: 92 93 $ sudo cat /sys/kernel/debug/ 94 95 IOMMU dmar1: Root Table Addre 96 B.D.F Root_entry 97 00:02.0 0x0000000000000000:0x 98 99 Context_entry 100 0x0000000000000102:0x00000001 101 102 PASID PASID_table_entry 103 -1 0x0000000000000000:0x 104 105 IOMMU dmar0: Root Table Addre 106 B.D.F Root_entry 107 00:0a.0 0x0000000000000000:0x 108 109 Context_entry 110 0x0000000000000000:0x00000001 111 112 PASID PASID_table_entry 113 0 0x0000000000000000:0x 114 115 [...] 116 117 What: /sys/kernel/debug/iommu/intel/ 118 Date: December 2023 119 Contact: Jingqi Liu <Jingqi.liu@intel.co 120 Description: 121 This file exports invalidation 122 IOMMU device. 123 124 Example in Kabylake: 125 126 :: 127 128 $ sudo cat /sys/kernel/debug/ 129 130 Invalidation queue on IOMMU: 131 Base: 0x10022e000 Head: 132 Index qw0 133 0 0000000000000014 134 1 0000000200000025 135 2 0000000000000014 136 137 qw3 138 0000000000000000 139 0000000000000000 140 0000000000000000 141 142 [...] 143 144 Invalidation queue on IOMMU: 145 Base: 0x10026e000 Head: 146 Index qw0 147 0 0000000000000004 148 1 0000000200000025 149 2 0000000000000011 150 151 [...] 152 153 What: /sys/kernel/debug/iommu/intel/ 154 Date: December 2023 155 Contact: Jingqi Liu <Jingqi.liu@intel.co 156 Description: 157 This file is used to control a 158 execution time ranges for vari 159 160 Firstly, write a value to 161 /sys/kernel/debug/iommu/intel/ 162 to enable sampling. 163 164 The possible values are as fol 165 166 * 0 - disable sampling all lat 167 168 * 1 - enable sampling IOTLB in 169 170 * 2 - enable sampling devTLB i 171 172 * 3 - enable sampling intr ent 173 174 Next, read /sys/kernel/debug/i 175 a snapshot of sampling result 176 177 Examples in Kabylake: 178 179 :: 180 181 1) Disable sampling all laten 182 183 $ sudo echo 0 > /sys/kernel/d 184 185 2) Enable sampling IOTLB inva 186 187 $ sudo echo 1 > /sys/kernel/d 188 189 $ sudo cat /sys/kernel/debug/ 190 191 IOMMU: dmar0 Register Base Ad 192 <0.1us 0.1u 193 inv_iotlb 0 194 195 1ms-10ms 196 inv_iotlb 0 197 198 [...] 199 200 IOMMU: dmar2 Register Base Ad 201 <0.1us 0.1u 202 inv_iotlb 0 203 204 1ms-10ms 205 inv_iotlb 0 206 207 3) Enable sampling devTLB inv 208 209 $ sudo echo 2 > /sys/kernel/d 210 211 $ sudo cat /sys/kernel/debug/ 212 213 IOMMU: dmar0 Register Base Ad 214 <0.1us 0.1u 215 inv_devtlb 0 216 217 >=10ms mi 218 inv_devtlb 0 219 220 [...] 221 222 What: /sys/kernel/debug/iommu/intel/ 223 Date: December 2023 224 Contact: Jingqi Liu <Jingqi.liu@intel.co 225 Description: 226 This file dumps a specified pa 227 in legacy mode or scalable mod 228 229 For a device that only support 230 page table by the debugfs file 231 directory. e.g. 232 /sys/kernel/debug/iommu/intel/ 233 234 For a device that supports sca 235 page table of specified pasid 236 the debugfs pasid directory. e 237 /sys/kernel/debug/iommu/intel/ 238 239 Examples in Kabylake: 240 241 :: 242 243 1) Dump the page table of dev 244 245 $ sudo cat /sys/kernel/debug/ 246 247 Device 0000:00:02.0 @0x1017f8 248 IOVA_PFN PML5E 249 0x000000008d800 | 0x000 250 0x000000008d801 | 0x000 251 0x000000008d802 | 0x000 252 253 PDPE PDE 254 0x00000001017fa003 0x000 255 0x00000001017fa003 0x000 256 0x00000001017fa003 0x000 257 258 [...] 259 260 2) Dump the page table of dev 261 supports scalable mode. 262 263 $ sudo cat /sys/kernel/debug/ 264 265 Device 0000:00:0a.0 with pasi 266 IOVA_PFN PML5E 267 0x0000000000000 | 0x000 268 0x0000000000001 | 0x000 269 0x0000000000002 | 0x000 270 271 PDPE PDE 272 0x0000000106ae6003 0x000 273 0x0000000106ae6003 0x000 274 0x0000000106ae6003 0x000 275 276 [...]
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.