From: Bjorn Helgaas <helgaas@kernel.org>
To: Ron Yuan <ron.yuan@memblaze.com>
Cc: Sinan Kaya <okaya@codeaurora.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Bo Chen <bo.chen@memblaze.com>,
William Huang <william.huang@memblaze.com>,
Fengming Wu <fengming.wu@memblaze.com>,
Jason Jiang <jason.jiang@microsemi.com>,
Radjendirane Codandaramane <radjendirane.codanda@microsemi.com>,
Ramyakanth Edupuganti <Ramyakanth.Edupuganti@microsemi.com>,
William Cheng <william.cheng@microsemi.com>,
"Kim Helper (khelper)" <khelper@micron.com>,
Linux PCI <linux-pci@vger.kernel.org>
Subject: Re: One Question About PCIe BUS Config Type with pcie_bus_safe or pcie_bus_perf On NVMe Device
Date: Tue, 23 Jan 2018 08:38:39 -0600 [thread overview]
Message-ID: <20180123143839.GE5317@bhelgaas-glaptop.roam.corp.google.com> (raw)
In-Reply-To: <SHAPR01MB173EFAB42A8838DC3D52FD1FEE30@SHAPR01MB173.CHNPR01.prod.partner.outlook.cn>
On Tue, Jan 23, 2018 at 01:25:56PM +0000, Ron Yuan wrote:
I'm reproducing Sinan's picture here so we can see what you're talking
about:
> >>>> root (MPS=256)
> >>>> |
> >>>> ------------------
> >>>> / \
> >>>> bridge0 (MPS=256) bridge1 (MPS=128)
> >>>> / \
> >>>> EP0 (MPS=256) EP1 (MPS=128)
> >>>>
> > PERFORMANCE mode reduces MRRS not because of a starvation issue,
> > but because reducing EP1's MRRS allows EP0 to use a larger MPS.
> Looks like this case is talking about EP1 requests data directly
> from EP0, using MRRS to control the return data payload, while still
> keeping the traffic from EP0 to RC in 256B.
No, this is not talking about EP1 requesting data from EP0. That
would be peer-to-peer DMA, and PERFORMANCE mode explicitly assumes
there is no peer-to-peer DMA. It reduces MRRS to allow EP0 to use a
larger MPS.
We must guarantee that no device receives a TLP larger than its MPS
setting. The simple and obvious configuration is to set MPS=128 for
everything in Sinan's picture. That works correctly but limits EP0's
performance.
What PERFORMANCE mode does is set MPS as shown in the picture and set
EP1's MRRS=128. We're assuming no peer-to-peer DMA, but of course EP1
may still need to do DMA reads from system memory, and setting its
MRRS=128 means those reads will be of 128 bytes or less.
If we set EP1's MRRS=256, it could do a 256-byte DMA read from system
memory, the root port could send a 256-byte completion, and bridge1
would treat that as a malformed TLP because its MPS=128.
next prev parent reply other threads:[~2018-01-23 14:38 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <SH2PR01MB106A1E21DEB5FE3FFB3D61C83E90@SH2PR01MB106.CHNPR01.prod.partner.outlook.cn>
[not found] ` <ef16a3cc-b641-a30d-644a-7940e340eb3e@codeaurora.org>
[not found] ` <SHAPR01MB173A5EA1677C2138CB528F2FEE90@SHAPR01MB173.CHNPR01.prod.partner.outlook.cn>
[not found] ` <5727b0b1-f0d5-7c78-373e-fc9d1bd662d2@codeaurora.org>
[not found] ` <CABhMZUU0643U-qVc9ymA+1PMZToSLFm2dg8-cu=iQ2LGw2Pi8Q@mail.gmail.com>
[not found] ` <SHAPR01MB173A36104635A8BFF9A83E1FEE80@SHAPR01MB173.CHNPR01.prod.partner.outlook.cn>
2018-01-18 16:24 ` One Question About PCIe BUS Config Type with pcie_bus_safe or pcie_bus_perf On NVMe Device Sinan Kaya
2018-01-19 20:51 ` Bjorn Helgaas
2018-01-20 19:20 ` Sinan Kaya
2018-01-20 19:29 ` Sinan Kaya
2018-01-22 21:36 ` Bjorn Helgaas
2018-01-22 22:04 ` Sinan Kaya
2018-01-22 22:51 ` Bjorn Helgaas
2018-01-22 23:24 ` Sinan Kaya
2018-01-23 0:16 ` Bjorn Helgaas
2018-01-23 2:27 ` Sinan Kaya
2018-01-23 13:25 ` Ron Yuan
2018-01-23 14:01 ` Ron Yuan
2018-01-23 17:48 ` Bjorn Helgaas
2018-01-23 18:07 ` Bjorn Helgaas
2018-01-23 14:38 ` Bjorn Helgaas [this message]
2018-01-23 23:50 ` Radjendirane Codandaramane
2018-01-24 16:29 ` Myron Stowe
2018-01-24 17:59 ` Ron Yuan
2018-01-24 18:01 ` Bjorn Helgaas
2018-01-31 8:40 ` Ron Yuan
2018-02-01 0:01 ` Myron Stowe
2018-02-01 0:13 ` Sinan Kaya
2018-02-01 3:37 ` Bjorn Helgaas
2018-02-01 15:14 ` Sinan Kaya
2018-02-05 1:02 ` Sinan Kaya
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=20180123143839.GE5317@bhelgaas-glaptop.roam.corp.google.com \
--to=helgaas@kernel.org \
--cc=Ramyakanth.Edupuganti@microsemi.com \
--cc=bhelgaas@google.com \
--cc=bo.chen@memblaze.com \
--cc=fengming.wu@memblaze.com \
--cc=jason.jiang@microsemi.com \
--cc=khelper@micron.com \
--cc=linux-pci@vger.kernel.org \
--cc=okaya@codeaurora.org \
--cc=radjendirane.codanda@microsemi.com \
--cc=ron.yuan@memblaze.com \
--cc=william.cheng@microsemi.com \
--cc=william.huang@memblaze.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).