On Mon, 2010-10-25 at 16:25 -0700, David Miller wrote: > From: Ben Hutchings <bhutchings@xxxxxxxxxxxxxx> > Date: Mon, 25 Oct 2010 23:38:53 +0100 > > > David Miller wrote: > >> From: Somnath Kotur <somnath.kotur@xxxxxxxxxx> > >> Date: Mon, 25 Oct 2010 16:42:35 +0530 > >> > >> > By default, be2net uses MSIx wherever possible. > >> > Adding a module parameter to use INTx for users who do not want to use MSIx. > >> > > >> > Signed-off-by: Somnath Kotur <somnath.kotur@xxxxxxxxxx> > >> > >> Either add a new ethtool flag, or use the PCI subsystem facilities > >> for tweaking things to implement this. > >> > >> Do not use a module option, otherwise every other networking driver > >> author will get the same "cool" idea, give the module option > >> different names, and the resulting user experience is terrible. > > > > This has already happened, sadly. So far as I can see it's mostly done > > to allow users to work around systems with broken MSIs; I'm not aware of > > any other reason to prefer legacy interrupts. However, the PCI subsystem > > already implements a blacklist and a kernel parameter for disabling MSIs > > on these systems. > > The PCI subsystem bits I'm totally fine with. > > But in the drivers themselves, that's what I don't want. That horse has really really bolted, it's gawn. I count 26 drivers with "disable MSI/X" parameters. Some even have more than one. 11 of them are network drivers, 9 scsi, 3 ata. I agree it's a mess for users, but it's probably preferable to a non-working driver. Ethtool would be nice, but only for network drivers. Is there a generic solution, quirks are obviously not keeping people happy. cheers MSI: Param "msi", 10 users: drivers/ata/sata_mv.c:MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)"); drivers/ata/sata_nv.c:MODULE_PARM_DESC(msi, "Enable use of MSI (Default: false)"); drivers/ata/sata_sil24.c:MODULE_PARM_DESC(msi, "Enable MSI (Default: false)"); drivers/net/cxgb3/cxgb3_main.c:MODULE_PARM_DESC(msi, "whether to use MSI or MSI-X"); drivers/net/cxgb4/cxgb4_main.c:MODULE_PARM_DESC(msi, "whether to use INTx (0), MSI (1) or MSI-X (2)"); drivers/net/cxgb4vf/cxgb4vf_main.c:MODULE_PARM_DESC(msi, "whether to use MSI-X or MSI"); drivers/net/forcedeth.c:MODULE_PARM_DESC(msi, "MSI interrupts are enabled by setting to 1 and disabled by setting to 0."); drivers/net/qla3xxx.c:MODULE_PARM_DESC(msi, "Turn on Message Signaled Interrupts."); drivers/scsi/aacraid/aachba.c:MODULE_PARM_DESC(msi, "IRQ handling." drivers/scsi/stex.c:MODULE_PARM_DESC(msi, "Enable Message Signaled Interrupts(0=off, 1=on)"); Param "use_msi", 4 users: drivers/net/qlcnic/qlcnic_main.c:MODULE_PARM_DESC(use_msi, "MSI interrupt (0=disabled, 1=enabled"); drivers/scsi/3w-9xxx.c:MODULE_PARM_DESC(use_msi, "Use Message Signaled Interrupts. Default: 0"); drivers/scsi/3w-sas.c:MODULE_PARM_DESC(use_msi, "Use Message Signaled Interrupts. Default: 0"); drivers/scsi/aic94xx/aic94xx_init.c:MODULE_PARM_DESC(use_msi, "\n" Param "disable_msi", 4 users: drivers/scsi/vmw_pvscsi.c:MODULE_PARM_DESC(disable_msi, "Disable MSI use in driver - (default=0)"); drivers/net/bnx2.c:MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); drivers/net/chelsio/cxgb2.c:MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); drivers/net/sky2.c:MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); Misc: sound/pci/hda/hda_intel.c:MODULE_PARM_DESC(enable_msi, "Enable Message Signaled Interrupt (MSI)"); drivers/message/fusion/mptbase.c:MODULE_PARM_DESC(mpt_msi_enable_spi, " Enable MSI Support for SPI \ drivers/message/fusion/mptbase.c:MODULE_PARM_DESC(mpt_msi_enable_fc, " Enable MSI Support for FC \ drivers/message/fusion/mptbase.c:MODULE_PARM_DESC(mpt_msi_enable_sas, " Enable MSI Support for SAS \ drivers/net/myri10ge/myri10ge.c:MODULE_PARM_DESC(myri10ge_msi, "Enable Message Signalled Interrupts"); MSI-X: Param "msi_x", 2 users: drivers/infiniband/hw/mthca/mthca_main.c:MODULE_PARM_DESC(msi_x, "attempt to use MSI-X if nonzero"); drivers/net/mlx4/main.c:MODULE_PARM_DESC(msi_x, "attempt to use MSI-X if nonzero"); Misc: drivers/net/forcedeth.c:MODULE_PARM_DESC(msix, "MSIX interrupts are enabled by setting to 1 and disabled by setting to 0."); drivers/net/qlcnic/qlcnic_main.c:MODULE_PARM_DESC(use_msi_x, "MSI-X interrupt (0=disabled, 1=enabled"); drivers/scsi/bfa/bfad_intr.c:MODULE_PARM_DESC(msix_disable_cb, "Disable MSIX for Brocade-415/425/815/825" drivers/scsi/bfa/bfad_intr.c:MODULE_PARM_DESC(msix_disable_ct, "Disable MSIX for Brocade-1010/1020/804" drivers/scsi/mpt2sas/mpt2sas_base.c:MODULE_PARM_DESC(msix_disable, " disable msix routed interrupts (default=0)"); drivers/scsi/qla4xxx/ql4_os.c:MODULE_PARM_DESC(ql4xenablemsix, drivers/scsi/vmw_pvscsi.c:MODULE_PARM_DESC(disable_msix, "Disable MSI-X use in driver - (default=0)");
Attachment:
signature.asc
Description: This is a digitally signed message part