public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
To: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: RDMA Read: Local protection error
Date: Mon, 2 May 2016 09:08:03 -0700	[thread overview]
Message-ID: <57277B63.8030506@sandisk.com> (raw)
In-Reply-To: <B72A389F-FFF1-498C-A946-8AA72B7769F8-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>

On 05/02/2016 08:10 AM, Chuck Lever wrote:
>> On Apr 29, 2016, at 12:45 PM, Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> wrote:
>> On 04/29/2016 09:24 AM, Chuck Lever wrote:
>>> I've found some new behavior, recently, while testing the
>>> v4.6-rc Linux NFS/RDMA client and server.
>>>
>>> When certain kernel memory debugging CONFIG options are
>>> enabled, 1MB NFS WRITEs can sometimes result in a
>>> IB_WC_LOC_PROT_ERR. I usually turn on most of them because
>>> I want to see any problems, so I'm not sure which option
>>> in particular is exposing the issue.
>>>
>>> When debugging is enabled on the server, and the underlying
>>> device is using FRWR to register the sink buffer, an RDMA
>>> Read occasionally completes with LOC_PROT_ERR.
>>>
>>> When debugging is enabled on the client, and the underlying
>>> device uses FRWR to register the target of an RDMA Read, an
>>> ingress RDMA Read request sometimes gets a Syndrome 99
>>> (REM_OP_ERR) acknowledgement, and a subsequent RDMA Receive
>>> on the client completes with LOC_PROT_ERR.
>>>
>>> I do not see this problem when kernel memory debugging is
>>> disabled, or when the client is using FMR, or when the
>>> server is using physical addresses to post its RDMA Read WRs,
>>> or when wsize is 512KB or smaller.
>>>
>>> I have not found any obvious problems with the client logic
>>> that registers NFS WRITE buffers, nor the server logic that
>>> constructs and posts RDMA Read WRs.
>>>
>>> My next step is to bisect. But first, I was wondering if
>>> this behavior might be related to the recent problems with
>>> s/g lists seen with iSER/SRP? ie, is this a recognized
>>> issue?
>>
>> Hello Chuck,
>>
>> A few days ago I observed similar behavior with the SRP protocol but only if I increase max_sect in /etc/srp_daemon.conf from the default to 4096. My setup was as follows:
>> * Kernel 4.6.0-rc5 at the initiator side.
>> * A whole bunch of kernel debugging options enabled at the initiator
>>   side.
>> * The following settings in /etc/modprobe.d/ib_srp.conf:
>>   options ib_srp cmd_sg_entries=255 register_always=1
>> * The following settings in /etc/srp_daemon.conf:
>>   a queue_size=128,max_cmd_per_lun=128,max_sect=4096
>> * Kernel 3.0.101 at the target side.
>> * Kernel debugging disabled at the target side.
>> * mlx4 driver at both sides.
>>
>> Decreasing max_sge at the target side from 32 to 16 did not help. I have not yet had the time to analyze this further.
>
> git bisect result:
>
> d86bd1bece6fc41d59253002db5441fe960a37f6 is the first bad commit
> commit d86bd1bece6fc41d59253002db5441fe960a37f6
> Author: Joonsoo Kim <iamjoonsoo.kim-Hm3cg6mZ9cc@public.gmane.org>
> Date:   Tue Mar 15 14:55:12 2016 -0700
>
>      mm/slub: support left redzone
>
> I checked out the previous commit and was not able to
> reproduce, which gives some confidence that the bisect
> result is valid.
>
> I've also investigated the wire behavior a little more.
> The server I'm using for testing has FRWR artificially
> disabled, so it uses physical addresses for RDMA Read.
> This limits it to max_sge_rd, or 30 pages for each Read
> request.
>
> The client sends a single 1MB Read chunk. The server
> emits 8 30-page Read requests, and a ninth request for
> the last 16 pages in the chunk.
>
> The client's HCA responds to the 30-page Read requests
> properly. But on the last Read request, it responds
> with a Read First, 14 Read Middle responses, then an
> ACK with Syndrome 99 (Remote Operation Error).
>
> This suggests the last page in the memory region is
> not accessible to the HCA.
>
> This does not happen on the first NFS WRITE, but
> rather one or two subsequent NFS WRITEs during the test.

On an x86 system that patch changes the alignment of buffers > 8 bytes 
from 16 bytes to 8 bytes (ARCH_SLAB_MINALIGN / ARCH_KMALLOC_MINALIGN). 
There might be code in the mlx4 driver that makes incorrect assumptions 
about the alignment of memory allocated by kmalloc(). Can someone from 
Mellanox comment on the alignment requirements of the buffers allocated 
by mlx4_buf_alloc()?

Thanks,

Bart.
--
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:[~2016-05-02 16:08 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-29 16:24 RDMA Read: Local protection error Chuck Lever
     [not found] ` <1A4F4C32-CE5A-44D9-9BFE-0E1F8D5DF44D-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-04-29 16:44   ` Santosh Shilimkar
     [not found]     ` <3fb4e75f-ff14-34e2-b6d3-6b6046812845-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-04-29 16:58       ` Chuck Lever
     [not found]         ` <72E8335B-282B-4DCC-AE4F-FE7E50ED5A08-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-04-29 19:07           ` Santosh Shilimkar
2016-04-29 16:45   ` Bart Van Assche
     [not found]     ` <57238F8C.70505-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-04-29 17:02       ` Chuck Lever
2016-04-29 17:34       ` Laurence Oberman
2016-05-02 15:10       ` Chuck Lever
     [not found]         ` <B72A389F-FFF1-498C-A946-8AA72B7769F8-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-02 16:08           ` Bart Van Assche [this message]
     [not found]             ` <57277B63.8030506-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-03 14:57               ` Chuck Lever
     [not found]                 ` <6BBFD126-877C-4638-BB91-ABF715E29326-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-04  1:07                   ` Joonsoo Kim
2016-05-04 19:59                     ` Chuck Lever
     [not found]                       ` <F6C79393-6174-49B3-ADBB-E40627DEE85D-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-09  1:03                         ` Joonsoo Kim
     [not found]                           ` <CAAmzW4NbY3Og0BgQyeA4LLXTnMuPTjxVUdFbH+HLahBw+MAhsw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-05-09  1:15                             ` Chuck Lever
     [not found]                               ` <1A79DEDE-A5C3-4581-A0AE-7C0AB056B4C7-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-09  2:11                                 ` Joonsoo Kim
2016-05-25 15:58                   ` Chuck Lever
     [not found]                     ` <1AFD636B-09FC-4736-B1C5-D1D9FA0B97B0-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-26 16:24                       ` Yishai Hadas
     [not found]                         ` <8a3276bf-f716-3dca-9d54-369fc3bdcc39-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-05-26 16:30                           ` Bart Van Assche
     [not found]                             ` <aaa67d51-663a-0aba-fc54-a5ab5d947a55-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-26 16:34                               ` Chuck Lever
     [not found]                                 ` <C0AE237D-5E5A-4F94-B717-F3A3B4B4D4A8-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-05-26 16:48                                   ` Sagi Grimberg
     [not found]                                     ` <574728EC.9040802-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-26 17:19                                       ` Sagi Grimberg
     [not found]                                         ` <57473025.5020801-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-26 17:57                                           ` Chuck Lever
2016-05-26 19:23                                           ` Leon Romanovsky
     [not found]                                             ` <20160526192351.GV25500-2ukJVAZIZ/Y@public.gmane.org>
2016-05-26 20:12                                               ` Christoph Lameter
     [not found]                                                 ` <alpine.DEB.2.20.1605261511230.8857-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2016-05-29  7:02                                                   ` Sagi Grimberg
     [not found]                                                     ` <574A941D.9050404-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-29  7:17                                                       ` Christoph Hellwig
     [not found]                                                         ` <20160529071749.GB24347-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-05-29  8:13                                                           ` Sagi Grimberg
     [not found]                                                             ` <574AA4BE.2060207-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-29  8:15                                                               ` Christoph Hellwig
     [not found]                                                                 ` <20160529081527.GA5839-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-05-29  8:37                                                                   ` Sagi Grimberg
2016-05-31 15:14                                                       ` Christoph Lameter
2016-05-29  7:10                                               ` Christoph Hellwig
     [not found]                                                 ` <20160529071040.GA24347-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-05-29  8:56                                                   ` Leon Romanovsky
2016-05-26 20:10                               ` Christoph Lameter
2016-05-26 16:39                           ` Leon Romanovsky

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=57277B63.8030506@sandisk.com \
    --to=bart.vanassche-xdaiopvojttbdgjk7y7tuq@public.gmane.org \
    --cc=chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@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