linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Christoph Lameter <cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org>
Cc: Or Gerlitz <gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] Expire sendonly joins (was Re: [PATCH rdma-rc 0/2] Add mechanism for ipoib neigh state change notifications)
Date: Mon, 28 Sep 2015 11:36:11 -0400	[thread overview]
Message-ID: <56095E6B.60509@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1509272120090.18678-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2769 bytes --]

On 09/27/2015 10:28 PM, Christoph Lameter wrote:
> On Sun, 27 Sep 2015, Doug Ledford wrote:
> 
>> Currently I'm testing your patch with a couple other patches.  I dropped
>> the patch of mine that added a module option, and added two different
>> patches.  However, I'm still waffling on this patch somewhat.  In the
>> discussions that Jason and I had, I pretty much decided that I would
>> like to see all send-only multicast sends be sent immediately with no
>> backlog queue.  That means that if we had to start a send-only join, or
>> if we started one and it hasn't completed yet, we would send the packet
>> immediately via the broadcast group versus queueing.  Doing so might
>> trip this new code up.
> 
> If we send immediately then we would need to check on each packet if the
> multicast creation has been completed?

We do that already anyway.  Calling find_mcast and then checking
if(!mcast || !mcast-ah) is exactly that check.

> Also broadcast could cause a unecessary reception event on the NICs of
> machines that have no interest in this traffic.

This is true.  However, I'm trying to balance between several competing
issues.  You also stated the revamped multicast code was adding latency
and dropped packets into the problem space.  Sending over the broadcast
would help with latency.  However, I have an alternative idea for that...

> We would like to keep
> irrelevant traffic off the fabric as much as possible. An a reception
> event that requires traffic to be thrown out will cause jitter in the
> processing of inbound traffic that we also would like to avoid.

That may not be optimal for your app, but we also need to try and
maintain proper emulation of typical IP/Ethernet behavior since this is
IPoIB after all.  That's why the app isn't required to join the group
before sending, and also why it should be able to expect that we will
fall back to sending via broadcast if needed.

However, the following algorithm might be suitable here:

On first packet:
  create mcast group
  queue packet to group
  schedule join

On subsequent packets:
  find mcast group
  check mcast state
    if already joined, send immediately
    if joining, queue packet to mcast queue
    if join is deferred, send via bcast

On join completion:
  successful join
    set mcast->ah
    send all queued packets via mcast
    if no queued packets, alloc neigh for default ipv4 ethertype
  on failed join
    mcast->ah remains NULL
    send all queued packets via bcast
    mcast->delay_until is set to future time (used to know join is deferred)
    schedule deferred join attemp


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
              GPG KeyID: 0E572FDD



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

  parent reply	other threads:[~2015-09-28 15:36 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-17 10:38 [PATCH rdma-rc 0/2] Add mechanism for ipoib neigh state change notifications Or Gerlitz
     [not found] ` <1442486283-9699-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-09-17 10:38   ` [PATCH rdma-rc 1/2] IB/ipoib: " Or Gerlitz
2015-09-17 10:38   ` [PATCH rdma-rc 2/2] IB/ipoib: Add cleanup to sendonly multicast objects Or Gerlitz
     [not found]     ` <1442486283-9699-3-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-09-17 11:19       ` Or Gerlitz
2015-09-17 14:42   ` [PATCH rdma-rc 0/2] Add mechanism for ipoib neigh state change notifications Christoph Lameter
     [not found]     ` <alpine.DEB.2.11.1509170940270.2052-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-17 18:55       ` Or Gerlitz
2015-09-17 18:57       ` Or Gerlitz
     [not found]         ` <CAJ3xEMg-h+J=cr2ddWvYUGU=MOBk4Aw-KtkeJutATH0Y17dnjg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-24 17:00           ` [PATCH] Expire sendonly joins (was Re: [PATCH rdma-rc 0/2] Add mechanism for ipoib neigh state change notifications) Christoph Lameter
     [not found]             ` <alpine.DEB.2.20.1509241158420.21198-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-25 15:32               ` Or Gerlitz
     [not found]                 ` <CAJ3xEMg2qQ3CXrfTrg=gUX2tQRuPnpxA-8PC98GzoF5iz=j5PQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-25 16:41                   ` Christoph Lameter
     [not found]                     ` <alpine.DEB.2.20.1509251140200.31792-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-25 16:55                       ` Christoph Lameter
2015-09-26 17:35                       ` Or Gerlitz
     [not found]                         ` <CAJ3xEMj9kGaM6s+AqBQ_-ZTB_+cgDk3kefhq_O0V3PM120O9yQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-27 16:39                           ` Christoph Lameter
     [not found]                             ` <alpine.DEB.2.20.1509271136570.14486-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-27 17:32                               ` Doug Ledford
     [not found]                                 ` <5608282F.1020507-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-28  2:28                                   ` Christoph Lameter
     [not found]                                     ` <alpine.DEB.2.20.1509272120090.18678-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-28 15:36                                       ` Doug Ledford [this message]
     [not found]                                         ` <56095E6B.60509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-28 15:51                                           ` Christoph Lameter
     [not found]                                             ` <alpine.DEB.2.20.1509281046440.30710-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-28 16:59                                               ` Doug Ledford
     [not found]                                                 ` <560971DC.500-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-28 17:05                                                   ` Christoph Lameter
2015-09-28 17:11                                                   ` Christoph Lameter
2015-09-28 17:10                                           ` Jason Gunthorpe
     [not found]                                             ` <20150928171007.GE12415-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-09-28 17:19                                               ` Christoph Lameter
     [not found]                                                 ` <alpine.DEB.2.20.1509281217470.31260-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-09-28 17:36                                                   ` Jason Gunthorpe
2015-09-29 17:47                                               ` Doug Ledford
2015-09-28  6:37                               ` Or Gerlitz
     [not found]                                 ` <CAJ3xEMg5aC8oeBVA9qygVJyLd2GM9C4sVLZqAL=kFGBcgBq_oQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-28 11:17                                   ` Christoph Lameter

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=56095E6B.60509@redhat.com \
    --to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org \
    --cc=gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-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).