All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: "Karicheri, Muralidharan" <m-karicheri2@ti.com>,
	Arnd Bergmann <arnd@arndb.de>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"Strashko, Grygorii" <grygorii.strashko@ti.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Jingoo Han <jg1.han@samsung.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Shilimkar, Santosh" <santosh.shilimkar@ti.com>,
	Mohit Kumar <mohit.kumar@st.com>
Subject: Re: [PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver
Date: Tue, 20 May 2014 11:42:26 -0600	[thread overview]
Message-ID: <20140520174226.GC5130@obsidianresearch.com> (raw)
In-Reply-To: <CAErSpo667uWybiHOh4tVQDh_JFpF0EbvxKwo_GQm+B1-wMtT1Q@mail.gmail.com>

On Tue, May 20, 2014 at 11:22:22AM -0600, Bjorn Helgaas wrote:
> On Tue, May 20, 2014 at 11:02 AM, Jason Gunthorpe
> <jgunthorpe@obsidianresearch.com> wrote:
> > On Fri, May 16, 2014 at 08:29:56PM +0000, Karicheri, Muralidharan wrote:
> >
> >> But pcie_bus_configure_settings just make sure the mrrs for a device
> >> is not greater than the max payload size.
> >
> > Not quite, it first scans the network checking the Maximum Payload Size
> > Supported (MPSS) for each device, and chooses the highest supported by
> > all as the MPS for all.
> 
> The "performance" setting, e.g., "pci=pcie_bus_perf", adds a few
> wrinkles by setting MRRS in ways that allow some devices to have
> larger MPS than others.  I don't think this is exactly what was
> envisioned in the spec, and it is not guaranteed to work if there is
> peer-to-peer DMA.  This isn't documented very well; the best I know of
> is the changelogs for:
> 
>   a1c473aa11e6 pci: Clamp pcie_set_readrq() when using "performance" settings
>   b03e7495a862 PCI: Set PCI-E Max Payload Size on fabric

Neat, and does pretty much confirm that setting the host bridge MPSS
properly is necessary to support all drivers, particularly the ones
that call pcie_set_readrq with any old value.

The 'performance' setting is a bit scary, it isn't just peer-to-peer
DMA that would be impacted but also CPU initiated burst writes. Eg
InfiniBand drivers burst a WQE to the NIC via the CPU. The MPS on the
root port bridge is used to segment the write. Probably not a problem
in practice because I think this is rare, and even rarer that a burst
would be > 128 bytes - but as you say, not really what the spec
intended..

Jason

WARNING: multiple messages have this Message-ID (diff)
From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver
Date: Tue, 20 May 2014 11:42:26 -0600	[thread overview]
Message-ID: <20140520174226.GC5130@obsidianresearch.com> (raw)
In-Reply-To: <CAErSpo667uWybiHOh4tVQDh_JFpF0EbvxKwo_GQm+B1-wMtT1Q@mail.gmail.com>

On Tue, May 20, 2014 at 11:22:22AM -0600, Bjorn Helgaas wrote:
> On Tue, May 20, 2014 at 11:02 AM, Jason Gunthorpe
> <jgunthorpe@obsidianresearch.com> wrote:
> > On Fri, May 16, 2014 at 08:29:56PM +0000, Karicheri, Muralidharan wrote:
> >
> >> But pcie_bus_configure_settings just make sure the mrrs for a device
> >> is not greater than the max payload size.
> >
> > Not quite, it first scans the network checking the Maximum Payload Size
> > Supported (MPSS) for each device, and chooses the highest supported by
> > all as the MPS for all.
> 
> The "performance" setting, e.g., "pci=pcie_bus_perf", adds a few
> wrinkles by setting MRRS in ways that allow some devices to have
> larger MPS than others.  I don't think this is exactly what was
> envisioned in the spec, and it is not guaranteed to work if there is
> peer-to-peer DMA.  This isn't documented very well; the best I know of
> is the changelogs for:
> 
>   a1c473aa11e6 pci: Clamp pcie_set_readrq() when using "performance" settings
>   b03e7495a862 PCI: Set PCI-E Max Payload Size on fabric

Neat, and does pretty much confirm that setting the host bridge MPSS
properly is necessary to support all drivers, particularly the ones
that call pcie_set_readrq with any old value.

The 'performance' setting is a bit scary, it isn't just peer-to-peer
DMA that would be impacted but also CPU initiated burst writes. Eg
InfiniBand drivers burst a WQE to the NIC via the CPU. The MPS on the
root port bridge is used to segment the write. Probably not a problem
in practice because I think this is rare, and even rarer that a burst
would be > 128 bytes - but as you say, not really what the spec
intended..

Jason

  reply	other threads:[~2014-05-20 17:42 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 16:01 [PATCH v1 0/5] Add Keystone PCIe controller driver Murali Karicheri
2014-05-15 16:01 ` Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 1/5] ARM: keystone: add pcie related options Murali Karicheri
2014-05-15 16:01   ` Murali Karicheri
2014-05-16  0:27   ` Jingoo Han
2014-05-16  0:27     ` Jingoo Han
2014-05-16 14:36     ` Karicheri, Muralidharan
2014-05-16 14:36       ` Karicheri, Muralidharan
2014-05-15 16:01 ` [PATCH v1 2/5] pci: designware: enhancements to support keystone pcie Murali Karicheri
2014-05-15 16:01   ` Murali Karicheri
2014-05-16  2:40   ` Jingoo Han
2014-05-16  2:40     ` Jingoo Han
2014-05-16 20:46   ` Karicheri, Muralidharan
2014-05-16 20:46     ` Karicheri, Muralidharan
2014-05-16 22:15   ` Kumar Gala
2014-05-16 22:15     ` Kumar Gala
2014-05-16 22:49     ` Murali Karicheri
2014-05-16 22:49       ` Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 3/5] phy: pci serdes phy driver for keystone Murali Karicheri
2014-05-15 16:01   ` Murali Karicheri
2014-05-15 16:14   ` Arnd Bergmann
2014-05-15 16:14     ` Arnd Bergmann
2014-05-23 17:14     ` Murali Karicheri
2014-05-23 17:14       ` Murali Karicheri
2014-05-23 19:23       ` Arnd Bergmann
2014-05-23 19:23         ` Arnd Bergmann
2014-05-27 16:46         ` Murali Karicheri
2014-05-27 16:46           ` Murali Karicheri
2014-05-27 18:36           ` Arnd Bergmann
2014-05-27 18:36             ` Arnd Bergmann
2014-06-02  6:16   ` Kishon Vijay Abraham I
2014-06-02  6:16     ` Kishon Vijay Abraham I
2014-06-02  6:45     ` Jingoo Han
2014-06-02  6:45       ` Jingoo Han
2014-06-02 14:28     ` Murali Karicheri
2014-06-02 14:28       ` Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 4/5] pci: dw: add common functions to support old hw based pci driver Murali Karicheri
2014-05-15 16:01   ` Murali Karicheri
2014-05-16 20:47   ` Karicheri, Muralidharan
2014-05-16 20:47     ` Karicheri, Muralidharan
2014-05-15 16:01 ` [PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver Murali Karicheri
2014-05-15 16:01   ` Murali Karicheri
2014-05-15 16:23   ` Arnd Bergmann
2014-05-15 16:23     ` Arnd Bergmann
2014-05-15 17:45     ` Murali Karicheri
2014-05-15 17:45       ` Murali Karicheri
2014-05-15 18:20       ` Arnd Bergmann
2014-05-15 18:20         ` Arnd Bergmann
2014-05-15 18:39         ` Jason Gunthorpe
2014-05-15 18:39           ` Jason Gunthorpe
2014-05-15 20:04           ` Murali Karicheri
2014-05-15 20:04             ` Murali Karicheri
2014-05-15 20:52             ` Jason Gunthorpe
2014-05-15 20:52               ` Jason Gunthorpe
2014-05-16 20:29               ` Karicheri, Muralidharan
2014-05-16 20:29                 ` Karicheri, Muralidharan
2014-05-20 17:02                 ` Jason Gunthorpe
2014-05-20 17:02                   ` Jason Gunthorpe
2014-05-20 17:22                   ` Bjorn Helgaas
2014-05-20 17:22                     ` Bjorn Helgaas
2014-05-20 17:42                     ` Jason Gunthorpe [this message]
2014-05-20 17:42                       ` Jason Gunthorpe
2014-05-21 23:32                   ` Murali Karicheri
2014-05-21 23:32                     ` Murali Karicheri
2014-05-22  0:55                     ` Jason Gunthorpe
2014-05-22  0:55                       ` Jason Gunthorpe
     [not found]                       ` <537E7823.5060609@ti.com>
2014-05-26 23:31                         ` Jason Gunthorpe
2014-05-26 23:31                           ` Jason Gunthorpe
2014-05-16 20:26         ` Murali Karicheri
2014-05-16 20:26           ` Murali Karicheri
2014-05-19 12:06           ` Arnd Bergmann
2014-05-19 12:06             ` Arnd Bergmann
2014-05-19 21:10             ` Murali Karicheri
2014-05-19 21:10               ` Murali Karicheri
2014-05-20  7:55               ` Arnd Bergmann
2014-05-20  7:55                 ` Arnd Bergmann
2014-05-20 17:17                 ` Bjorn Helgaas
2014-05-20 17:17                   ` Bjorn Helgaas
2014-05-29 15:34     ` Murali Karicheri
2014-05-29 15:34       ` Murali Karicheri
2014-05-15 16:28   ` Arnd Bergmann
2014-05-15 16:28     ` Arnd Bergmann
2014-05-16 22:44     ` Murali Karicheri
2014-05-16 22:44       ` Murali Karicheri
2014-05-19 12:12       ` Arnd Bergmann
2014-05-19 12:12         ` Arnd Bergmann
2014-05-16 20:47   ` Karicheri, Muralidharan
2014-05-16 20:47     ` Karicheri, Muralidharan
2014-05-16  0:48 ` [PATCH v1 0/5] Add Keystone PCIe controller driver Jingoo Han
2014-05-16  0:48   ` Jingoo Han
2014-05-16 20:40   ` Karicheri, Muralidharan
2014-05-16 20:40     ` Karicheri, Muralidharan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140520174226.GC5130@obsidianresearch.com \
    --to=jgunthorpe@obsidianresearch.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=grygorii.strashko@ti.com \
    --cc=jg1.han@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=m-karicheri2@ti.com \
    --cc=mohit.kumar@st.com \
    --cc=santosh.shilimkar@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.