Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1537380 > unrolled thread

[RFC] PCI: Change default MPS behavior

Started byJon Mason <jon.mason@broadcom.com>
First post2016-12-07 01:40 +0100
Last post2016-12-07 20:10 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [RFC] PCI: Change default MPS behavior Jon Mason <jon.mason@broadcom.com> - 2016-12-07 01:40 +0100
    Re: [RFC] PCI: Change default MPS behavior Keith Busch <keith.busch@intel.com> - 2016-12-07 20:10 +0100

#1537380 — [RFC] PCI: Change default MPS behavior

FromJon Mason <jon.mason@broadcom.com>
Date2016-12-07 01:40 +0100
Subject[RFC] PCI: Change default MPS behavior
Message-ID<sLyr7-Nn-13@gated-at.bofh.it>
Not all systems have a BIOS or firmware to preconfigure the PCIE MPS
prior to Linux booting.  Without any firmware to pre-setup the MPS, the
PCIE_BUS_DEFAULT will simply set everything to 0 (128b).  This behavior
causes these systems to have non-optimal MPS values.  To get around this
issue, change the default value of pcie_bus_config to be PCIE_BUS_SAFE.
This configures all systems to use better values for the MPS, at the
expense of any potential HW errata that might not like being changed.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
---
 drivers/pci/pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index ba34907..94d574e 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -88,7 +88,7 @@ unsigned long pci_hotplug_mem_size = DEFAULT_HOTPLUG_MEM_SIZE;
 #define DEFAULT_HOTPLUG_BUS_SIZE	1
 unsigned long pci_hotplug_bus_size = DEFAULT_HOTPLUG_BUS_SIZE;
 
-enum pcie_bus_config_types pcie_bus_config = PCIE_BUS_DEFAULT;
+enum pcie_bus_config_types pcie_bus_config = PCIE_BUS_SAFE;
 
 /*
  * The default CLS is used if arch didn't set CLS explicitly and not
-- 
2.7.4

[toc] | [next] | [standalone]


#1538016

FromKeith Busch <keith.busch@intel.com>
Date2016-12-07 20:10 +0100
Message-ID<sLPLj-46c-39@gated-at.bofh.it>
In reply to#1537380
On Tue, Dec 06, 2016 at 07:20:27PM -0500, Jon Mason wrote:
> Not all systems have a BIOS or firmware to preconfigure the PCIE MPS
> prior to Linux booting.  Without any firmware to pre-setup the MPS, the
> PCIE_BUS_DEFAULT will simply set everything to 0 (128b).  This behavior
> causes these systems to have non-optimal MPS values.  To get around this
> issue, change the default value of pcie_bus_config to be PCIE_BUS_SAFE.
> This configures all systems to use better values for the MPS, at the
> expense of any potential HW errata that might not like being changed.

Wouldn't it be better to provide the kernel parameter to override the
default on such platforms? The PCIE_BUS_SAFE sets the MPS to the lowest
common denominator below the root port, which may be less optimal than
the default behavior for hot plug.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web