Linux PCI Non-Transparent Bridge framework and drivers
 help / color / mirror / Atom feed
From: Dave Jiang <dave.jiang@intel.com>
To: Logan Gunthorpe <logang@deltatee.com>,
	Eric Pilmore <epilmore@gigaio.com>
Cc: Jon Mason <jdmason@kudzu.us>, linux-ntb <linux-ntb@googlegroups.com>
Subject: Re: [PATCH] ntb_netdev: fix sleep time mismatch
Date: Tue, 12 Jun 2018 15:17:45 -0700	[thread overview]
Message-ID: <c8284602-9001-7daf-083b-53a1a794c838@intel.com> (raw)
In-Reply-To: <7f0e1c57-696f-44be-17f6-815fa5090774@deltatee.com>



On 06/12/2018 03:04 PM, Logan Gunthorpe wrote:
> 
> 
> On 12/06/18 03:59 PM, Eric Pilmore wrote:
>> I agree. There are too many interrupts and too much bounce buffering.
>> We have played around with eliminating the interrupts all together, but haven't
>> seen a noticeable improvement, although our queue size is artificially small
>> for other reasons.  We're hoping to devote more resources to benchmarking
>> and improving it. Eliminating or reducing the bounce buffering would help
>> quite a bit also. Ideally the sender could copy straight into a skb on the
>> receiving side instead of the intermediate buffering into the shared memory.
>> Again, we're hoping to get time and resources to play around with some
>> ideas.
> 
> Awesome! I'm really glad someone is looking into this! I'd really
> appreciate it if you keep the list informed if you make progress.
> 
> The only idea I had was to start by writing an ntb_transport_perf to see
> if the slow down is in ntb_transport (due to bounce buffering, etc) or
> if it's all ntb_netdev/tcp layer.

The bounce buffering definitely decreases the performance. So the idea
of directly writing to the remote skbuff would be great. It would also
resolve issue of failing to allocate a large enough DMA region for the
bounce buffer. Allen and I talked about netpoll support but never got
around to look into it. So that may be another idea for performance
enhancement. I do wonder if we will have any resistance from upstream
due to security concerns since in order to do that we'll have to open up
a very large BAR and allow access to entire memory region of the
opposing node. Not an IOMMU expert, but will we have any issues when it
comes to DMA to the remote buffers in this way? Probably not since Allen
has NTRDMA doing something similar. I guess we can see what the change
looks like. Looking forward to that though.

  reply	other threads:[~2018-06-12 22:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11 20:39 [PATCH] ntb_netdev: fix sleep time mismatch Jon Mason
2018-06-11 20:50 ` Dave Jiang
2018-06-11 22:33 ` Logan Gunthorpe
2018-06-12  3:15   ` Jon Mason
2018-06-12 16:11     ` Logan Gunthorpe
2018-06-12 21:33       ` Eric Pilmore
2018-06-12 21:44         ` Logan Gunthorpe
2018-06-12 21:59           ` Eric Pilmore
2018-06-12 22:04             ` Logan Gunthorpe
2018-06-12 22:17               ` Dave Jiang [this message]
2018-06-12 22:27                 ` Logan Gunthorpe
2018-06-12 22:55                   ` Eric Pilmore
2018-06-13  0:04                     ` Logan Gunthorpe

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=c8284602-9001-7daf-083b-53a1a794c838@intel.com \
    --to=dave.jiang@intel.com \
    --cc=epilmore@gigaio.com \
    --cc=jdmason@kudzu.us \
    --cc=linux-ntb@googlegroups.com \
    --cc=logang@deltatee.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