All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Weiny, Ira" <ira.weiny@intel.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	"Hefty, Sean" <sean.hefty@intel.com>
Cc: Sagi Grimberg <sagi@grimberg.me>, Christoph Hellwig <hch@lst.de>,
	"dledford@redhat.com" <dledford@redhat.com>,
	"bart.vanassche@sandisk.com" <bart.vanassche@sandisk.com>,
	"swise@opengridcomputing.com" <swise@opengridcomputing.com>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
	"target-devel@vger.kernel.org" <target-devel@vger.kernel.org>
Subject: RE: [PATCH 02/12] IB/cma: pass the port number to ib_create_qp
Date: Thu, 28 Apr 2016 23:25:35 +0000	[thread overview]
Message-ID: <2807E5FD2F6FDA4886F6618EAC48510E22EC858F@CRSMSX101.amr.corp.intel.com> (raw)
In-Reply-To: <20160428220945.GA1542@obsidianresearch.com>

> 
> On Thu, Apr 28, 2016 at 09:53:52PM +0000, Hefty, Sean wrote:
> > > I see several litmus tests for what kinds of ports can be combined
> > > into a device (eg the 'protocol'):
> > >
> > > 1) Various cap tests are the same on every port. Particularly the
> > >    iWarp special behaviours we are talking about here.
> > > 2) AHs are not port-specific, so the AH addressing format must be
> > >    defined by the device. Thus IB and iWarp cannot be combined.
> > > 3) Verbs APM must work across ports. So eg rocee and IB cannot be
> > >    combined since they use a different CM process.
> > >
> > > Multi-port really only exists to support APM, if APM doesn't work
> > > then drivers don't need to create multi-port devices.
> >
> > I don't know the details of the qlogic device, but it is entirely
> > possible that it allows different protocols to share resources (PDs,
> > CQs, IP addresses, etc.).  I think we need to be careful dismissing
> > multi-protocol devices as silly, or restricting which protocols can
> > run over which port.
> 
> This isn't dismissing them as silly, it is a pragmatic need in the core code that
> everything associated with a PD have a minimum standard of uniformity -
> and it is very clear that includes things like the iwarp special cases and the
> particular format of the AHs.
> 
> For instance, even if a hardware device can run rocee and iwarp concurrently
> over a single port, today we absolutely must have different struct ib_devices
> for the same physical port to be able to plug that into the core stack.
> 
> Fundamentally we have the wrong model for such hardware. When a PD is
> created it should set the 'protocol' and select the compatible member ports
> that belong to the PD. Cap tests and so forth should be done against the PD,
> not a port or a device.
> 
> Fixing that is major surgery, and having cap tests to the port is not helping
> clarify the current situation.
> 
> > Restricting all ports on a device to support all protocols is
> > different than restricting a device to supporting a single protocol,
> > and it affects more than APM.
> 
> What else is there that is cross port in verbs?
> 

Well the statement said nothing about verbs.  It said 

<quote>
But until we get agreement from Doug and all the core maintainers that we can kill 
> it from the core, and that multi-protocol devices are indeed as silly 
> as they seem
</quote>

What Sean is again pointing out is that there are devices which support multiple protocols even on the same port.  What you say is true for _verbs_ QPs and _verbs_ PDs but not everything is a QP.

Also part of the history is that when these immutable capability flags were added we recognized that some devices would be supporting Ethernet (RoCE) on 1 port and IB on the other.  I do agree wih you that this is probably better modeled as 2 devices each with a single port.

Mellanox how hard will it be to change your drivers to that model?  I'm not even sure how the detection of Link Layer works any more.  Back in the day it took a config file and was done when the module loaded.  But I thought support for autodetection was in the works.  Is the driver capable of that now?  If so I see a number of issues here with users changing 1 of 2 IB ports from an IB switch to an Ethernet switch and having autodetection have to tear down a single port and create a device with the other.  What happens with APM then?   :-/

But all that is different from the qib/hfi case where we have 1 port with 2 protocols on it.  If we are going to add PSM into the core then I think it is _semantically_ appropriate for users to be able to query for the protocols supported on a port and get back more than 1.

I did not oppose the change Christoph suggested but that was before we started talking about adding in PSM...

Ira

  parent reply	other threads:[~2016-04-28 23:25 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-11 21:32 generic RDMA READ/WRITE API V6 Christoph Hellwig
2016-04-11 21:32 ` [PATCH 02/12] IB/cma: pass the port number to ib_create_qp Christoph Hellwig
     [not found]   ` <1460410360-13104-3-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-15 17:55     ` Sagi Grimberg
2016-04-19  3:14   ` Ira Weiny
2016-04-19 17:30     ` Jason Gunthorpe
2016-04-19 18:38       ` Christoph Hellwig
     [not found]         ` <20160419183830.GB1211-jcswGhMUV9g@public.gmane.org>
2016-04-28 21:05           ` Doug Ledford
     [not found]       ` <20160419173032.GD20844-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-04-19 18:49         ` Sagi Grimberg
2016-04-19 19:24           ` Jason Gunthorpe
     [not found]             ` <20160419192430.GB27028-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-04-19 19:41               ` Steve Wise
2016-04-19 20:05                 ` 'Christoph Hellwig'
2016-04-19 20:21                   ` Jason Gunthorpe
     [not found]                   ` <20160419200555.GA2561-jcswGhMUV9g@public.gmane.org>
2016-04-19 20:26                     ` Steve Wise
2016-04-21  3:11                       ` ira.weiny
2016-04-28 19:43               ` Hefty, Sean
2016-04-28 20:07                 ` Jason Gunthorpe
2016-04-28 21:53                   ` Hefty, Sean
2016-04-28 22:09                     ` Jason Gunthorpe
2016-04-28 23:23                       ` Hefty, Sean
2016-04-28 23:49                         ` Jason Gunthorpe
2016-04-28 23:25                       ` Weiny, Ira [this message]
     [not found]                         ` <2807E5FD2F6FDA4886F6618EAC48510E22EC858F-8k97q/ur5Z2krb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-04-29  0:01                           ` Jason Gunthorpe
2016-04-11 21:32 ` [PATCH 03/12] IB/core: allow passing mapping an offset into the SG in ib_map_mr_sg Christoph Hellwig
     [not found]   ` <1460410360-13104-4-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-15 17:56     ` Sagi Grimberg
2016-04-11 21:32 ` [PATCH 04/12] IB/core: add a helper to check for READ WITH INVALIDATE support Christoph Hellwig
     [not found]   ` <1460410360-13104-5-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-15 17:56     ` Sagi Grimberg
2016-04-19  3:15   ` Ira Weiny
2016-04-11 21:32 ` [PATCH 05/12] IB/core: refactor ib_create_qp Christoph Hellwig
2016-04-17 20:00   ` Sagi Grimberg
     [not found]   ` <1460410360-13104-6-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-19  3:08     ` Ira Weiny
2016-04-11 21:32 ` [PATCH 07/12] IB/core: add a need_inval flag to struct ib_mr Christoph Hellwig
     [not found]   ` <1460410360-13104-8-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-17 20:01     ` Sagi Grimberg
2016-04-19  3:20   ` Ira Weiny
2016-04-11 21:32 ` [PATCH 08/12] IB/core: generic RDMA READ/WRITE API Christoph Hellwig
     [not found]   ` <1460410360-13104-9-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-12 23:52     ` Bart Van Assche
     [not found]       ` <570D8A42.9040107-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-04-13 13:50         ` Christoph Hellwig
     [not found] ` <1460410360-13104-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-11 21:32   ` [PATCH 01/12] IB/mlx5: Expose correct max_sge_rd limit Christoph Hellwig
     [not found]     ` <1460410360-13104-2-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-17 13:53       ` Leon Romanovsky
     [not found]         ` <20160417135341.GC6349-2ukJVAZIZ/Y@public.gmane.org>
2016-04-17 18:06           ` Christoph Hellwig
2016-04-11 21:32   ` [PATCH 06/12] IB/core: add a simple MR pool Christoph Hellwig
2016-04-17 20:01     ` Sagi Grimberg
2016-04-19  3:19     ` Ira Weiny
2016-04-11 21:32   ` [PATCH 09/12] target: enhance and export target_alloc_sgl/target_free_sgl Christoph Hellwig
2016-04-11 21:32 ` [PATCH 10/12] IB/srpt: convert to the generic RDMA READ/WRITE API Christoph Hellwig
2016-04-13 18:57   ` Bart Van Assche
2016-04-14 13:32     ` Christoph Hellwig
2016-04-28 21:02       ` Doug Ledford
     [not found]         ` <57227A6D.4000802-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-29  6:34           ` Christoph Hellwig
     [not found]             ` <20160429063443.GA18893-jcswGhMUV9g@public.gmane.org>
2016-04-29 14:44               ` Doug Ledford
2016-04-11 21:32 ` [PATCH 11/12] IB/core: add RW API support for signature MRs Christoph Hellwig
     [not found]   ` <1460410360-13104-12-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-22 21:53     ` Bart Van Assche
2016-04-11 21:32 ` [PATCH 12/12] IB/isert: convert to the generic RDMA READ/WRITE API Christoph Hellwig
     [not found]   ` <1460410360-13104-13-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-04-28 21:04     ` Doug Ledford
2016-04-29 11:46       ` Sagi Grimberg
     [not found]         ` <572349AA.2070407-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-04-29 14:45           ` Doug Ledford
     [not found]             ` <e7959da7-79ca-0422-fbc9-9b3814516e1b-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-29 16:42               ` Leon Romanovsky
2016-04-12 18:31 ` generic RDMA READ/WRITE API V6 Steve Wise
2016-04-22 22:29 ` Bart Van Assche
     [not found]   ` <571AA5C8.4080502-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-02 15:15     ` Christoph Hellwig
     [not found]       ` <20160502151535.GA520-jcswGhMUV9g@public.gmane.org>
2016-05-02 19:08         ` Bart Van Assche
2016-05-02 22:14           ` Bart Van Assche
2016-05-03  8:40             ` Christoph Hellwig
2016-05-03 16:10               ` Bart Van Assche
     [not found]           ` <5727A5C7.1090009-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-03 14:31             ` Christoph Hellwig
     [not found]               ` <20160503143104.GA30342-jcswGhMUV9g@public.gmane.org>
2016-05-03 21:23                 ` Bart Van Assche
2016-04-18 20:14 generic RDMA READ/WRITE API V7 Christoph Hellwig
2016-04-18 20:14 ` [PATCH 02/12] IB/cma: pass the port number to ib_create_qp Christoph Hellwig

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=2807E5FD2F6FDA4886F6618EAC48510E22EC858F@CRSMSX101.amr.corp.intel.com \
    --to=ira.weiny@intel.com \
    --cc=bart.vanassche@sandisk.com \
    --cc=dledford@redhat.com \
    --cc=hch@lst.de \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=sagi@grimberg.me \
    --cc=sean.hefty@intel.com \
    --cc=swise@opengridcomputing.com \
    --cc=target-devel@vger.kernel.org \
    /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.