mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Logan Gunthorpe <logang@deltatee.com>
To: Jon Mason <jdmason@kudzu.us>, Allen Hubbe <Allen.Hubbe@dell.com>
Cc: linux-ntb@googlegroups.com,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Dave Jiang <dave.jiang@intel.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Kurt Schwemmer <kurt.schwemmer@microsemi.com>,
	Stephen Bates <sbates@raithlin.com>,
	Serge Semin <fancer.lancer@gmail.com>
Subject: Re: [PATCH v3 14/16] switchtec_ntb: implement scratchpad registers
Date: Wed, 2 Aug 2017 11:02:06 -0600	[thread overview]
Message-ID: <95cd95ef-cd83-bd31-ddcb-1fcc0f7fbe51@deltatee.com> (raw)
In-Reply-To: <CAPoiz9wy3bFUWkE1udiY7ynkOT5VxvvtoawNw1qRTFnSapcOEQ@mail.gmail.com>



On 02/08/17 10:32 AM, Jon Mason wrote:
> After a long-ish conversation on IRC, the way we want to go forward
> would be to provide 2 ways of communicating prior to the MW's being
> setup:  SPADs and Message Registers.  The HW driver would make
> available whichever ones are supported by the hardware.  The transport
> can see which of those are available in the HW driver, select the
> appropriate one, and use it to setup the NTB connection, MW, etc.
> similar to how the SPADs are being used today.  This would allow for
> any current clients to work unmodified, and would require minimal
> changes to the existing transport layer.

I'm open to this, but I have a couple points:

1) I think there needs to be an ntb library or similar so the client
just has to say "communicate this setup data to the peer X". We don't
need every client replicating the decision to use spads or msgs or whatever.

2) In my experience, message registers are a bit of a pain to send
chunks of data like is being done with spads in the existing clients.
(Some time ago, I originally tried emulating spads with message
registers and it did not work well.)  You can only send 32bits at a time
and you have to have a signal indicating the other side is finished with
it before sending another message. I think they are best used just for
signaling infrequent events where if you loose a message it's not an issue.

One thought I had was that maybe we need to just push this decision into
the drivers. ie if there's an ntb api just for communicating setup data,
the driver could then determine the most appropriate way to communicate
it for the hardware (whether via spads, messages or a special memory
window). However, the difficulty with this is that the driver would have
to communicate if it's using spad resources it would otherwise advertise
to the clients.

Though, maybe we don't need spads in the ntb api. Maybe they are the
wrong abstraction. All the existing clients only use them for setup
data, so if we dropped the spad api in favor of a setup data api, the
driver could then just make the decision on how best to communicate it.

Anyway, just my thoughts.

Logan

  reply	other threads:[~2017-08-02 17:03 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-25 20:57 [PATCH v3 00/16] Switchtec NTB Support Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 01/16] switchtec: move structure definitions into a common header Logan Gunthorpe
2017-07-31 20:15   ` Bjorn Helgaas
2017-07-31 20:51     ` Logan Gunthorpe
2017-07-31 22:50       ` Bjorn Helgaas
2017-07-25 20:57 ` [PATCH v3 02/16] switchtec: export class symbol for use in upper layer driver Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 03/16] switchtec: add NTB hardware register definitions Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 04/16] switchtec: add link event notifier callback Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 05/16] ntb: ntb_test: ensure the link is up before trying to configure the mws Logan Gunthorpe
2017-08-01 18:07   ` Jon Mason
2017-08-01 18:09     ` Logan Gunthorpe
2017-08-01 18:16       ` Jon Mason
2017-08-01 18:19         ` Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 06/16] ntb: ensure ntb_mw_get_align() is only called when the link is up Logan Gunthorpe
2017-07-31 20:16   ` Bjorn Helgaas
2017-08-01 18:14   ` Jon Mason
2017-08-01 18:17     ` Logan Gunthorpe
2017-08-01 18:28       ` Jon Mason
2017-07-25 20:57 ` [PATCH v3 07/16] ntb: add check and comment for link up to mw_count() and mw_get_align() Logan Gunthorpe
2017-08-01 18:11   ` Jon Mason
2017-07-25 20:57 ` [PATCH v3 08/16] switchtec_ntb: introduce initial NTB driver Logan Gunthorpe
2017-07-31 23:08   ` Dave Jiang
2017-07-25 20:57 ` [PATCH v3 09/16] switchtec_ntb: initialize hardware for memory windows Logan Gunthorpe
2017-07-31 20:25   ` Bjorn Helgaas
2017-08-01 18:55   ` Jon Mason
2017-07-25 20:57 ` [PATCH v3 10/16] switchtec_ntb: initialize hardware for doorbells and messages Logan Gunthorpe
2017-07-31 20:26   ` Bjorn Helgaas
2017-07-25 20:57 ` [PATCH v3 11/16] switchtec_ntb: add skeleton NTB driver Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 12/16] switchtec_ntb: add link management Logan Gunthorpe
2017-07-31 20:27   ` Bjorn Helgaas
2017-07-25 20:57 ` [PATCH v3 13/16] switchtec_ntb: implement doorbell registers Logan Gunthorpe
2017-08-01 18:59   ` Jon Mason
2017-07-25 20:57 ` [PATCH v3 14/16] switchtec_ntb: implement scratchpad registers Logan Gunthorpe
2017-08-01 19:10   ` Jon Mason
2017-08-01 22:26     ` Logan Gunthorpe
2017-08-02 13:06       ` Allen Hubbe
2017-08-02 16:32         ` Jon Mason
2017-08-02 17:02           ` Logan Gunthorpe [this message]
2017-07-25 20:57 ` [PATCH v3 15/16] switchtec_ntb: add memory window support Logan Gunthorpe
2017-07-25 20:57 ` [PATCH v3 16/16] switchtec_ntb: update switchtec documentation with notes for NTB Logan Gunthorpe
2017-07-26 13:09 ` [PATCH v3 00/16] Switchtec NTB Support Allen Hubbe

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=95cd95ef-cd83-bd31-ddcb-1fcc0f7fbe51@deltatee.com \
    --to=logang@deltatee.com \
    --cc=Allen.Hubbe@dell.com \
    --cc=bhelgaas@google.com \
    --cc=dave.jiang@intel.com \
    --cc=fancer.lancer@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdmason@kudzu.us \
    --cc=kurt.schwemmer@microsemi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ntb@googlegroups.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=sbates@raithlin.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

Powered by JetHome