On 16/07/2021 19:27, Andy Shevchenko wrote: > On Fri, Jul 16, 2021 at 05:27:36PM +0200, Ralf Ramsauer wrote: >> On 16/07/2021 17:01, Andy Shevchenko wrote: >>> On Fri, Jul 16, 2021 at 4:07 PM Ralf Ramsauer >>> <ralf.ramsauer@xxxxxxxxxxxxxxxxx> wrote: >>>> On 14/07/2021 15:35, Andy Shevchenko wrote: >>>>> On Wed, Jul 14, 2021 at 3:56 PM Ralf Ramsauer >>>>> <ralf.ramsauer@xxxxxxxxxxxxxxxxx> wrote: >>>>>> On 14/07/2021 08:54, Jiri Slaby wrote: >>>>>>> On 13. 07. 21, 12:40, Andy Shevchenko wrote: >>>>> >>>>>>> Hmm, have you checked the commit which introduced the whitelist? >>>>>>> >>>>>>> Nevertheless, this needs to handled with care: while many 8250 devices >>>>>>> actually claim to support MSI(-X) interrupts it should not be >>>>>>> enabled be >>>>>>> default. I had at least one device in my hands with broken MSI >>>>>>> implementation. >>>>>>> >>>>>>> So better introduce a whitelist with devices that are known to support >>>>>>> MSI(-X) interrupts. I tested all devices mentioned in the patch. >>>>>>> >>>>>>> >>>>>>> You should have at least CCed the author for an input. >>>>>> >>>>>> Yep, back then I was testing three different 8250 pci cards. All of them >>>>>> claimed to support MSI, while one really worked with MSI, the one that I >>>>>> whitelisted. So I thought it would be better to use legacy IRQs as long >>>>>> as no one tested a specific card to work with MSI. >>>>> >>>>> Can you shed a light eventually what those cards are? >>> >>>> So I found a no-name el-cheapo card that has some issues with MSI: >>> >>> Win Chip Head (WCH) >>> >>>> 18:00.0 Serial controller: Device 1c00:3253 (rev 10) (prog-if 05 [16850]) > > Thank you! > > One more thing, ist it possible to see entire PCI configuration space (w/ or > w/o MSI, I don't think it matters)? Something like > > `lspci -nk -vvv -xxx -s 18:0` > > to run. > > (I believe there are a lot of 0xff bytes) Find it attached, w/ MSI+. Not that many, only the 0xffs for the MSI mask, afaict. Ralf
18:00.0 0700: 1c00:3253 (rev 10) (prog-if 05 [16850]) Subsystem: 1c00:3253 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 Interrupt: pin A routed to IRQ 104 NUMA node: 0 Region 0: I/O ports at 4000 [size=256] Region 1: Memory at ab000000 (32-bit, prefetchable) [size=32K] Region 2: I/O ports at 4100 [size=4] Expansion ROM at ab200000 [disabled] [size=32K] Capabilities: [60] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] MSI: Enable+ Count=1/32 Maskable+ 64bit+ Address: 00000000fee000b8 Data: 0000 Masking: ffffffff Pending: 00000000 Capabilities: [80] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: CorrErr- NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp- LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s (ok), Width x1 (ok) TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis+ NROPrPrP- LTR- 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled, AtomicOpsCtl: ReqEn- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1- EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported 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- AdvNonFatalErr- CEMsk: RxErr+ BadTLP+ BadDLLP+ Rollover+ Timeout+ AdvNonFatalErr+ AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn+ ECRCChkCap+ ECRCChkEn+ MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Kernel driver in use: serial Kernel modules: 8250_pci 00: 00 1c 53 32 07 04 10 00 10 05 00 07 00 00 00 00 10: 01 40 00 00 08 00 00 ab 01 41 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 53 32 30: 00 80 ff ff 60 00 00 00 00 00 00 00 ff 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 01 68 c3 c9 00 00 00 00 05 80 8b 01 b8 00 e0 fe 70: 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 80: 10 00 12 00 41 8b 64 00 3e 28 10 00 11 fc 07 00 90: 40 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 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