linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Moni Shoua <monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: Create a common verbs transport library
Date: Thu, 15 Oct 2015 09:07:27 -0400	[thread overview]
Message-ID: <20151015130726.GA12480@phlsvsds.ph.intel.com> (raw)
In-Reply-To: <CAG9sBKNKvpbRZgK+nsbuhycSnCMYnL3ObqfXmiab+akuFf99rw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Thu, Oct 15, 2015 at 08:40:25AM +0300, Moni Shoua wrote:
>> I assume by user-space driver we are talking about libverbs? We have
>> separate libraries for ipath/qib and hfi. We should probably coalesce these
>> into a single library but that is a separate issue. PSM is also unrelated to
>> the work here since PSM is not verbs.
>>
>Not libibverbs but lib<provider> (e.g. libmlx4, libqib,...), like for
>any other kernel verbs provider.
>In other wordsm if the name of the SW verbs provider is called VT
>(verbs transport) than the library we need to develop will be libVT.
>However, the challenge here is larger than for other providers due to
>different style of backends.
>Take for example the ibv_post_send() verb. For some totally incapable
>kernel bypass backends this requires that this verb go down to the
>kernel (Soft RoCE for example) but for others it needs to put the WQE
>directly on the HW in some HW specific manner.
>This needs some architectural effort.

Ok, I'm with you now. Yes, this is an issue and agree that it will take some 
architectural work.

>>> At a high-level, it seems that we should do as follows:
>>>
>>> - Decide on an initial code base for VT (rxe/hfi/qib), clone it, and
>>> rename to VT
>>>
>>> - Split the code to VT and backend and create the initial backend APIs,
>>> e.g.:
>>
>>
>> We have been planning a bit of a different approach. My thoughts are we make
>> VT a completely new kmod. It will start out life lettings verbs calls from
>> the core go into the drivers to do their thing, but will contain a bunch of
>> the duplicated code that we have in hfi1/qib/ipath. The next step is to move
>> piece by piece the rest of the verbs code.
>>
>We agree with the kmod approach. However
>1. Until we get rid completely from code duplication I don't think we
>can get out from being in staging phase so the initial work better be
>complete. Don't you think so?

Yes, I completely agree. Code duplication issue should be solved before we 
move out of staging. 

I could have been more clear on my intentions here. The initial set of 
patches that we will submit for RFC will not be complete.  That is not meant 
to get us out of staging and satisfy the hfi1 TODO item. It is a stepping 
stone to get things moving and start getting feedback from the community. We 
want to engage early on. So the sooner we have something tangible that we 
can all look at the better.

>2. Soft RoCE is a candidate driver (backend) for this framework and we
>would like to make sure that the new VT provider meets out needs.

Yes, while my focus is of course hfi1 and qib, we certainly realize there is 
a larger community here that has a vested interest, and this is why we want 
to engage early.

>>> -- Send packet
>>>
>>> -- Deliver packet (receive)
>>>
>>> -- Attach multicast
>>>
>>> -- Packet buffer allocation
>>>
>>> -- Notify when more send space is available
>>>
>>> - In parallel, prepare the backends of other drivers while enhancing
>>> VT as needed.
>>
>>
>> Yes, we need to come up with an API, I'm not fully sure what that should
>> look like yet, it is a work in progress.
>I think that this will be a good place to start before implementation.
>Can you please share API between backends and VT so we can comment on?

This will be coming very soon, and we anticipate needing to make changes so 
that all drivers are best supported. Don't think of it as, "this is what we 
are going to do". Think of it as, "this is what we are thinking, does it 
work for you?".

>>> Do you have any preferences to the initial code base?
>>>
>>> Do you already have some code that we can look at?
>>
>>
>> We'll be starting out with making changes to hfi1 and qib to follow shortly
>> behind. No code just yet, but I should have something to post as an RFC very
>> soon (in the next two weeks).
>I suggest that implementation will start after we close the arch. Like
>I said we want to make sure that Soft RoCE requirements are met in the
>design.
>I strongly recommend that we figure out a mechanism to allows us to cooperate.
>I hope that you see it this way too,

Yes, I think by doing the development in the open, and sharing code early is 
our best way to do this. We can work together to make sure everyone's needs 
are met.

I'm thinking perhaps we'll post some stuff to GitHub and you folks can take 
a look. We can do some back and forth before even posting patches to the 
list. I'll check into the logistics and share the details soon?

-Denny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-10-15 13:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-29 12:56 Create a common verbs transport library Dennis Dalessandro
     [not found] ` <20150929125648.GA3433-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-10-13  5:32   ` Moni Shoua
     [not found]     ` <CAG9sBKPqXk671c7obj4wd8drNaxPU3gue428y3Es_BJfuC-sVQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-14 18:49       ` Dennis Dalessandro
     [not found]         ` <20151014184903.GA12463-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-10-15  5:40           ` Moni Shoua
     [not found]             ` <CAG9sBKNKvpbRZgK+nsbuhycSnCMYnL3ObqfXmiab+akuFf99rw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-15 13:07               ` Dennis Dalessandro [this message]
     [not found]                 ` <20151015130726.GA12480-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-10-15 14:15                   ` Moni Shoua
     [not found]                     ` <CAG9sBKNnGqdMwi+J1709JNgpW6fS1eWmc6ZN51SH2tv2Du1SGA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-23 20:49                       ` Dennis Dalessandro
     [not found]                         ` <20151023204938.GA18980-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-10-25 10:15                           ` Moni Shoua

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=20151015130726.GA12480@phlsvsds.ph.intel.com \
    --to=dennis.dalessandro-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.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 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).