/proc/interrupts + dpdk +pci

tr -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

cat /proc/interrupts | tr -s " " | more

[root@localhost ixgbe]# cat /proc/interrupts |less -S
           CPU0       CPU1       CPU2       CPU3       CPU4 
  1:          0          0          0          0          0 
  3:          0          0          0          0          0 
  4:   35908519   35873132    6849634   14474714    2443894 
  9:          0          0          0          0          0 
 10:          0          0          0          0          0 
 15:        680          0          0          0          0 
 16:          0          0          0          0          0 
 17:          0          0          0          0          0 
 19:          0          0          0          0          0 
 20:          0          0          0          0          0 
 21:          0          0          0          0          0 
 22:          0          0          0          0          0 
 23:          0          0          0          0          0 
 24:          0          0          0          0          0 
 25:          0          0          0          0          0 
 26:          0          0          0          0          0 
 27:          0          0          0          0          0 
 28:          0          0          0          0          0 
 29:          0          0          0          0          0 
 30:          0          0          0          0          0 
 31:          0          0          0          0          0 
 32:          0          0          0          0          0 
 33:          0          0          0          0          0 
 34:          0          0          0          0          0 
 35:          0          0          0          0          0 
 36:          0          0          0          0          0 
 37:          0          0          0          0          0 
 38:          0          0          0          0          0 
 39:          0          0          0          0          0 
 40:          0          0          0          0          0 
 41:          0          0          0          0          0 
 42:          0          0          0          0          0 
 43:         96          0          0          0          0 
 44:          0          0          0          0          0 
 45:          0          0          0          0          0 
 46:          0          0          0          0          0 
 47:          0          0          0          0          0 
 48:         82          0          0          0          0 
 49:          0          0          0          0          0 
 50:          0          0          0          0          0 
 51:          0          0          0          0          0 
 52:          0          0          0          0          0 
 53:          0          0          0          0          0 
 54:          0          0          0          0          0 
 55:          0          0          0          0          0 
 56:          0          0          0          0          0 
 57:          0          0          0          0          0 
 58:          0          0          0          0          0 
 59:          0          0          0          0          0 
[root@localhost ixgbe]# cat /proc/interrupts |less -S
 
#!/bin/sh

sed -r -e 's/^ *//' -e 's/ {2,}/|/g' < /proc/interrupts | 
  awk -F'|' '
    BEGIN { cpu_n = 0; }
    NR == 1 {
      for(i = 1; i <= NF; i++)
        if($i ~ CPU)
          cpu_n++;
    }
    NR > 1 {
      sum = 0;
      for(i = 2; i <= cpu_n + 1; i++)
        sum += $i;
      printf("%4s %12d %-20s ", $1, sum, $6);
      for(i = 1; i < 7; i++)
        $i = "";
      print;
    }' | 
  sort -nrk2
sed -r -e 's/^ *//' -e 's/ {2,}/|/g' < /proc/interrupts  | grep -i tx
282:|17|0|442319|0|123266|0|0|0|0|0|0|0|0|26092|0|0|0|0|0|0|0|0|0|0|0|4298521|0|208369|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 65536001 Edge|enp125s0f0-TxRx-0
413:|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 65538049 Edge|enp125s0f1-TxRx-0
541:|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 65540097 Edge|enp125s0f2-TxRx-0
735:|0|0|0|0|0|0|0|0|2241|0|0|0|0|0|0|0|0|0|0|0|537920|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 65542145 Edge|enp125s0f3-TxRx-0
[root@localhost ixgbe]# 
[root@localhost ixgbe]# lspci -vv  | grep -i ether
05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
[root@localhost ixgbe]# ls /sys/bus/pci/drivers/vfio-pci/ -al
总用量 0
drwxr-xr-x.  2 root root     0 8月  26 23:05 .
drwxr-xr-x. 21 root root     0 8月  25 06:44 ..
lrwxrwxrwx.  1 root root     0 9月   2 21:12 0000:05:00.0 -> ../../../../devices/pci0000:00/0000:00:0c.0/0000:03:00.0/0000:04:00.0/0000:05:00.0
lrwxrwxrwx.  1 root root     0 9月   2 22:28 0000:06:00.0 -> ../../../../devices/pci0000:00/0000:00:0c.0/0000:03:00.0/0000:04:01.0/0000:06:00.0
--w-------.  1 root root 65536 9月   2 22:16 bind
lrwxrwxrwx.  1 root root     0 9月   2 21:12 module -> ../../../../module/vfio_pci
--w-------.  1 root root 65536 9月   2 22:27 new_id
--w-------.  1 root root 65536 9月   2 21:12 remove_id
--w-------.  1 root root 65536 9月   2 21:12 uevent
--w-------.  1 root root 65536 9月   2 22:26 unbind
[root@localhost ixgbe]# 

运行dpdk中断

[root@localhost dpdk-19.11]#  ./examples/kni/build/app/kni -c 0xFFFFF -n 4 -- -P -p 0x01 --config="(0,0,1)"
EAL: Detected 128 lcore(s)
EAL: Detected 4 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-2048kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:05:00.0 on NUMA socket 0
EAL:   probe driver: 19e5:200 net_hinic
EAL:   using IOMMU type 1 (Type 1)
net_hinic: Initializing pf hinic-0000:05:00.0 in primary process
net_hinic: Device 0000:05:00.0 hwif attribute:
net_hinic: func_idx:0, p2p_idx:0, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:15, func_type:2
net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2
net_hinic: Get public resource capability:
net_hinic: host_id: 0x0, ep_id: 0x0, intr_type: 0x0, max_cos_id: 0x7, er_id: 0x0, port_id: 0x0
net_hinic: host_total_function: 0xf2, host_oq_id_mask_val: 0x8, max_vf: 0x78
[root@localhost ixgbe]# ls /sys/devices/pci0000:00/0000:00:0c.0/0000:03:00.0/0000:04:00.0/0000:05:00.0/msi_irqs/120
/sys/devices/pci0000:00/0000:00:0c.0/0000:03:00.0/0000:04:00.0/0000:05:00.0/msi_irqs/120
[root@localhost ixgbe]# cat  /sys/devices/pci0000:00/0000:00:0c.0/0000:03:00.0/0000:04:00.0/0000:05:00.0/msi_irqs/120
msix
[root@localhost ixgbe]# 
[root@localhost ixgbe]# sed -r -e 's/^ *//' -e 's/ {2,}/|/g' < /proc/interrupts | grep 120:
120:|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 2621440 Edge|vfio-msix[0](0000:05:00.0)
[root@localhost ixgbe]# lspci -xxx -vv -s 05:00.0
05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
        Subsystem: Huawei Technologies Co., Ltd. Device d139
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        NUMA node: 0
        Region 0: Memory at 80007b00000 (64-bit, prefetchable) [size=128K]
        Region 2: Memory at 80008a20000 (64-bit, prefetchable) [size=32K]
        Region 4: Memory at 80000200000 (64-bit, prefetchable) [size=1M]
        Expansion ROM at e9200000 [disabled] [size=1M]
        Capabilities: [40] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
                DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported-
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
                         EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
        Capabilities: [80] MSI: Enable- Count=1/32 Maskable+ 64bit+
                Address: 0000000000000000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [a0] MSI-X: Enable+ Count=32 Masked-
                Vector table: BAR=2 offset=00000000
                PBA: BAR=2 offset=00004000
        Capabilities: [b0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [c0] Vital Product Data
                Product Name: Huawei IN200 2*100GE Adapter
                Read-only fields:
                        [PN] Part number: SP572
                End
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 0
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [200 v1] Single Root I/O Virtualization (SR-IOV)
                IOVCap: Migration-, Interrupt Message Number: 000
                IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+
                IOVSta: Migration-
                Initial VFs: 120, Total VFs: 120, Number of VFs: 0, Function Dependency Link: 00
                VF offset: 1, stride: 1, Device ID: 375e
                Supported Page Size: 00000553, System Page Size: 00000010
                Region 0: Memory at 0000080007b20000 (64-bit, prefetchable)
                Region 2: Memory at 00000800082a0000 (64-bit, prefetchable)
                Region 4: Memory at 0000080000300000 (64-bit, prefetchable)
                VF Migration: offset: 00000000, BIR: 0
        Capabilities: [310 v1] #19
        Capabilities: [4e0 v1] Device Serial Number 44-a1-91-ff-ff-a4-9b-eb
        Capabilities: [4f0 v1] Transaction Processing Hints
                Device specific mode supported
                No steering table available
        Capabilities: [600 v1] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
        Capabilities: [630 v1] Access Control Services
                ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Kernel driver in use: vfio-pci
        Kernel modules: hinic
00: e5 19 00 02 06 04 10 00 45 00 00 02 08 00 00 00
10: 0c 00 b0 07 00 08 00 00 0c 00 a2 08 00 08 00 00
20: 0c 00 20 00 00 08 00 00 00 00 00 00 e5 19 39 d1
30: 00 00 40 e6 40 00 00 00 00 00 00 00 ff 00 00 00
40: 10 80 02 00 e2 8f 00 10 37 29 10 00 03 f1 43 00
50: 08 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 92 03 00 00 00 00 00 00 0e 00 00 00
70: 03 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 05 a0 8a 01 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 11 b0 1f 80 02 00 00 00 02 40 00 00 00 00 00 00
b0: 01 c0 03 f8 00 00 00 00 00 00 00 00 00 00 00 00
c0: 03 00 28 80 37 32 78 ff 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[root@localhost ixgbe]# 
[root@localhost 0000:7d:00.0]# ls msi_irqs/ 
281  292  303  314  325  336  347  358  369  380  391  402
282  293  304  315  326  337  348  359  370  381  392  403
283  294  305  316  327  338  349  360  371  382  393  404
284  295  306  317  328  339  350  361  372  383  394  405
285  296  307  318  329  340  351  362  373  384  395  406
286  297  308  319  330  341  352  363  374  385  396  407
287  298  309  320  331  342  353  364  375  386  397  408
288  299  310  321  332  343  354  365  376  387  398  409
289  300  311  322  333  344  355  366  377  388  399  410
290  301  312  323  334  345  356  367  378  389  400  411
291  302  313  324  335  346  357  368  379  390  401
[root@localhost 0000:7d:00.0]# cat  msi_irqs/281 
msix
[root@localhost 0000:7d:00.0]# ethtool -i enp125s0f0
driver: hns3
version: 4.14.0-115.el7a.0.1.aarch64 SMP
firmware-version: 0x01080c03
expansion-rom-version: 
bus-info: 0000:7d:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
[root@localhost 0000:7d:00.0]# pwd
/sys/devices/pci0000:7c/0000:7c:00.0/0000:7d:00.0
[root@localhost 0000:7d:00.0]# sed -r -e 's/^ *//' -e 's/ {2,}/|/g' < /proc/interrupts | grep enp125s0f0
282:|17|0|442319|0|123266|0|0|0|0|0|0|0|0|26092|0|0|0|0|0|0|0|0|0|0|0|4325780|0|208369|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|ITS-MSI 65536001 Edge|enp125s0f0-TxRx-0
[root@localhost 0000:7d:00.0]# cat  msi_irqs/282
msix
[root@localhost 0000:7d:00.0]#
[root@localhost 0000:7d:00.0]# ls $(readlink -e /sys/class/net/enp125s0f0/../../msi_irqs)
281  292  303  314  325  336  347  358  369  380  391  402
282  293  304  315  326  337  348  359  370  381  392  403
283  294  305  316  327  338  349  360  371  382  393  404
284  295  306  317  328  339  350  361  372  383  394  405
285  296  307  318  329  340  351  362  373  384  395  406
286  297  308  319  330  341  352  363  374  385  396  407
287  298  309  320  331  342  353  364  375  386  397  408
288  299  310  321  332  343  354  365  376  387  398  409
289  300  311  322  333  344  355  366  377  388  399  410
290  301  312  323  334  345  356  367  378  389  400  411
291  302  313  324  335  346  357  368  379  390  401
[root@localhost 0000:7d:00.0]# 
APCI PRT Table Dump
[    0.076942] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.077030] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    0.077111] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 *10 11 12 14 15)
[    0.077191] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *10 11 12 14 15)
[    0.077270] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 10 11 12 14 15)
[    0.077352] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    0.077432] ACPI: PCI Interrupt Link [LNKG] (IRQs *3 4 5 6 10 11 12 14 15)
[    0.077511] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 14 15)
This is how the PIRQ[D:A] and PIRQ[H:E] are mapped by firmware (I assume this is PIC mode).
PCI Interrupt Requests: In non-APIC mode the PIRQx# signals can
be routed to interrupts 3, 4, 5, 6, 7, 9, 10, 11, 12, 14 or 15 as
described in Section 5.8.6. Each PIRQx# line has a separate Route
Control register.

In APIC mode, these signals are connected to the internal I/O APIC in
the following fashion: PIRQA# is connected to IRQ16, PIRQB# to
IRQ17, PIRQC# to IRQ18, and PIRQD# to IRQ19. This frees the
legacy interrupts
Dumping the actual PIN mapping once the OS has booted up
lspci -b -vvv | grep "Interrupt: pin"
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin A routed to IRQ 5
        Interrupt: pin A routed to IRQ 3
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin B routed to IRQ 10
        Interrupt: pin C routed to IRQ 10
Note: From the PRT

       LNKA - 11
       LNKD - 10
       LNKE - 5
       LNKG - 3
Actual interrupts used
lspci -vvv | grep "Interrupt: pin"
        Interrupt: pin A routed to IRQ 43
        Interrupt: pin A routed to IRQ 48
        Interrupt: pin A routed to IRQ 44
        Interrupt: pin A routed to IRQ 47
        Interrupt: pin A routed to IRQ 46
        Interrupt: pin A routed to IRQ 45
        Interrupt: pin A routed to IRQ 23
        Interrupt: pin B routed to IRQ 42
        Interrupt: pin C routed to IRQ 18
This matches: PIRQC# to IRQ18 which is the mapping for pin C in APIC mode

Factoring in MSI
cat /proc/interrupts
    This shows all MSI capable devices have been mapped away.
    The only one still on pin based interrupts is IRQ18.
           CPU0       CPU1       CPU2       CPU3
  0:        120          0          0          0  IR-IO-APIC   2-edge      timer
  4:          0          9          0          0  IR-IO-APIC   4-edge      ttyS0
  8:          0          0          0          1  IR-IO-APIC   8-edge      rtc0
  9:          0        164          0          0  IR-IO-APIC   9-fasteoi   acpi
 18:          0          0          0          0  IR-IO-APIC  18-fasteoi   i801_smbus
 23:          0         33          0          0  IR-IO-APIC  23-fasteoi   ehci_hcd:usb1
 40:          0          0          0          0  DMAR-MSI   0-edge      dmar0
 41:          0          0          0          0  DMAR-MSI   1-edge      dmar1
 42:          0          0       5880          0  IR-PCI-MSI 512000-edge      ahci[0000:00:1f.2]
 43:          0          0          0       1305  IR-PCI-MSI 32768-edge      i915
 44:          0          0          0          0  IR-PCI-MSI 327680-edge      xhci_hcd
 45:          0          0        389          0  IR-PCI-MSI 442368-edge      snd_hda_intel:card1
 46:          0          0          0       8498  IR-PCI-MSI 409600-edge      eno1
 47:         13          0          0          0  IR-PCI-MSI 360448-edge      mei_me
 48:          0          0         90          0  IR-PCI-MSI 49152-edge      snd_hda_intel:card0
And 18 is not remapped as the device is not MSI capable

00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
        Subsystem: Intel Corporation Device 2054
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin C routed to IRQ 18
        Region 0: Memory at f7c39000 (64-bit, non-prefetchable) [size=256]
        Region 4: I/O ports at f040 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
Debug outputs on Virtual Q35 (QEMU)
PRT Table
[    0.060061] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
[    0.060118] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
[    0.060172] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
[    0.060225] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
[    0.060279] ACPI: PCI Interrupt Link [LNKE] (IRQs 5 *10 11)
[    0.060333] ACPI: PCI Interrupt Link [LNKF] (IRQs 5 *10 11)
[    0.060386] ACPI: PCI Interrupt Link [LNKG] (IRQs 5 10 *11)
[    0.060439] ACPI: PCI Interrupt Link [LNKH] (IRQs 5 10 *11)
[    0.060462] ACPI: PCI Interrupt Link [GSIA] (IRQs *16)
[    0.060468] ACPI: PCI Interrupt Link [GSIB] (IRQs *17)
[    0.060473] ACPI: PCI Interrupt Link [GSIC] (IRQs *18)
[    0.060479] ACPI: PCI Interrupt Link [GSID] (IRQs *19)
[    0.060485] ACPI: PCI Interrupt Link [GSIE] (IRQs *20)
[    0.060490] ACPI: PCI Interrupt Link [GSIF] (IRQs *21)
[    0.060496] ACPI: PCI Interrupt Link [GSIG] (IRQs *22)
[    0.060502] ACPI: PCI Interrupt Link [GSIH] (IRQs *23)
lspci -b -vvv | grep IRQ

        Interrupt: pin ? routed to IRQ 255
        Interrupt: pin A routed to IRQ 10
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin A routed to IRQ 11
        Interrupt: pin ? routed to IRQ 255
        Interrupt: pin A routed to IRQ 10
        Interrupt: pin A routed to IRQ 10
Note: The 255s are the PCIe Host Bridge and the ISA Bridge

lspci -vvv | grep IRQ

        Interrupt: pin A routed to IRQ 21
        Interrupt: pin A routed to IRQ 22
        Interrupt: pin A routed to IRQ 23
        Interrupt: pin A routed to IRQ 26
        Interrupt: pin A routed to IRQ 10
Note: The non MSI device is at IRQ 10

00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
       Subsystem: Red Hat, Inc. QEMU Virtual Machine
       Flags: bus master, fast devsel, latency 0, IRQ 10
       I/O ports at 6000 [size=64]
cat /proc/interrupts

 24:          0          0          0          0   PCI-MSI 49152-edge      virtio2-config
 25:       1639          0          0          0   PCI-MSI 49153-edge      virtio2-req.0
 26:          0          0          0          7   PCI-MSI 512000-edge      ahci[0000:00:1f.2]
 27:          0          0          0          0   PCI-MSI 16384-edge      virtio0-config
 28:          0         77          0          0   PCI-MSI 16385-edge      virtio0-input.0
 29:          0          0          1          0   PCI-MSI 16386-edge      virtio0-output.0
原文地址:https://www.cnblogs.com/dream397/p/13622716.html