public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org
Subject: ib_ipoib: CSUM support in connected mode
Date: Sun, 14 Sep 2014 21:46:22 +0300	[thread overview]
Message-ID: <20140914184621.GA4283@yuval-lab> (raw)

Hi,
Lately i was working on fixing an issue with IPoIB driver and i'd like to share the 
details with you.

By default, IPoIB-CM driver uses 64k MTU. Larger MTU gives better performance.
This MTU plus overhead puts the memory allocation for IP based packets at 32 4k pages
(order 5), which have to be contiguous. When the system memory under pressure, it was
observed that allocating 128k contiguous physical memory is difficult and causes serious
errors (such as system becomes unusable).
This enhancement resolve the issue by removing the physically contiguous memory requirement
using Scatter/Gather feature that exists in Linux stack. In order to use Scatter/Gather
feature in Linux IPoIB-CM driver, Linux IPoIB-CM must support IP checksum offload feature
(requirements as per the current Linux N/W implementation). But IB HCA hardware does not
support this feature and hence IPoIB cannot support the same.
IPoIB Connected Mode driver uses RC (Reliable Connection) which guarantees the corruption
free delivery of the packet. InfiniBand uses 32b CRC which provides stronger data integrity
protection compare to 16b IP Checksum. So, there is no added value that IP Checksum provides
in the IB world. The proposal is to tell to network stack that IPoIB-CM supports IP
Checksum offload. This enables Linux IPoIB-CM driver to use Scatter/Gather feature. Network
sends the IP packet without adding the IP Checksum to the header. On the receive side, IPoIB
driver again tells the network stack that IP Checksum is good for the incoming packets and
network stack avoids the IP Checksum calculations.
During connection establishment the driver determine if the other end supports IB CRC
as checksum. This is done so driver will be able to calculate checksum before transmitting
the packet in case the other end does not support this feature.
A support for fragmented skb is added to transmit path.

Please note that a "very welcome side-effect" of this feature is a high of degree performance 
improvement as a result of the removal of csum calculation.
I will be happy to share results with you if needed.

At present i have patch ready which was tested with an old kernel and i'm working to port 
it to latest.

Please review and comment.

Yuval
--
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

             reply	other threads:[~2014-09-14 18:46 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-14 18:46 Yuval Shaia [this message]
2014-09-15 14:47 ` ib_ipoib: CSUM support in connected mode Or Gerlitz
     [not found]   ` <CAJ3xEMhEzdyzcAufQU--VbM7aoAzsw7wV2i_i=kjcS9PbdC0Tw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-15 16:58     ` Jason Gunthorpe
     [not found]       ` <20140915165820.GB12397-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2014-09-15 17:20         ` Or Gerlitz
     [not found]           ` <CAJ3xEMir_FgqS7j+fuhugocawdZXHG9hAK-jpArZ_5vkzVjZeg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-15 17:45             ` Jason Gunthorpe
2014-09-15 19:03         ` Yuval Shaia
2014-09-15 18:55     ` Yuval Shaia
2014-09-16  6:47       ` Or Gerlitz
     [not found]         ` <5417DD0F.9090201-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2014-09-22 19:28           ` Yuval Shaia
2014-09-30  8:39             ` Yuval Shaia
2014-10-02 13:00           ` Yuval Shaia
2014-10-01 11:55 ` Yuval Shaia
2014-10-01 12:13   ` Or Gerlitz
     [not found]     ` <542BEFED.6050203-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2014-10-04 18:36       ` Yuval Shaia

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=20140914184621.GA4283@yuval-lab \
    --to=yuval.shaia-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@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