From: Marcelo Ricardo Leitner <mleitner@redhat.com>
To: Or Gerlitz <ogerlitz@mellanox.com>
Cc: netdev <netdev@vger.kernel.org>,
Yevgeny Petrilin <yevgenyp@mellanox.com>,
Amir Vadai <amirv@mellanox.com>
Subject: Re: mlx4: dropping multicast packets at promisc leave
Date: Fri, 21 Sep 2012 15:32:29 -0300 [thread overview]
Message-ID: <505CB2BD.4080402@redhat.com> (raw)
In-Reply-To: <505B3088.7090908@redhat.com>
On 09/20/2012 12:04 PM, Marcelo Ricardo Leitner wrote:
> On 09/20/2012 10:21 AM, Or Gerlitz wrote:
>> On 20/09/2012 03:43, Marcelo Ricardo Leitner wrote:
>>> I have a report that our mlx4 driver (RHEL 6.3) is dropping multicast
>>> packets when NIC leaves promisc mode. It seems this is being cause due
>>> to the new steering mode that took place near by commit
>>> 1679200f91da6a054b06954c9bd3eeed29b6731f. As it seems, the new
>>> steering mode needs more commands/time to leave the promisc mode,
>>> which may be leading to packet drops.
>>
>> Marcelo,
>>
>> The commit you point on below 6d19993 "net/mlx4_en: Re-design multicast
>> attachments flow" makes sure to avoid
>> doing extra firmware comments and not leave a window in time where
>> "correct" addresses are not attached. Its hard to say what's the case on
>> that RHEL 6.3 system, it would be very helpful through if you manage to
>> reproduce the problem on an upstream kernel -- BTW you didn't say on
>
> Okay, I understand that the commit prevents a window. I may be missing
> something, but isn't there another one in there? Between:
> mlx4_SET_MCAST_FLTR MLX4_MCAST_DISABLE and
> mlx4_SET_MCAST_FLTR MLX4_MCAST_ENABLE
> because mlx4_multicast_promisc_remove() was called just before those.
> Otherwise I don't how is the NIC would be receiving multicast packets in
> there.
>
....
> And then I tried 3 additional patches applied at once:
> - 60d31c1475f2 "net/mlx4_core: Looking for promiscuous entries on the
> correct port"
> - f1f75f0 - mlx4: attach multicast with correct flag
> - Yes, this one wasn't in 2.6.32-279.el6.
> - 6d19993 - net/mlx4_en: Re-design multicast attachments flow
>
> And they still reported drops.
Hi, updates on this. In summary, I couldn't reproduce it when using
upstream kernel, even on a machine which I've seen the drops.
Checking with customer, they could reproduce the issue once when using
commit 6d19993 but cannot reproduce it anymore.
I also could reproduce it but it gets much harder to trigger when using
commit 6d19993.
I could run some tests with net tree kernel (up to 8ea853fd) and I
didn't see any drops so far. More bellow.
>>> It takes 300ms to perform the change there against my 600us. Hitting
>>> something like tcpdump -c 10 in a loop helps triggering it.
>>
>> Do you have any insight for this huge difference?
>
> No idea. Couldn't track it yet.
Now I might have. ksoftirqd/0 is being triggered when running 500Mbit
multicast traffic via iperf and is hitting 90% CPU usage. Seems it is
blocking the execution of mlx4_en_do_set_multicast() sometimes.
This happens at my reproducer only. It does not happen on the other
server. Customer also doesn't see it, but see the delays. They just see
mlx4_en thread running when running tcpdump in cycles, but that is expected.
Upstream (net tree) kernel doesn't do this, even at my reproducer box.
Simple perf record/report gave me:
# Overhead Command Shared Object Symbol
# ........ ........... ................. .....................
#
98.16% ksoftirqd/0 [kernel.kallsyms] [k]
fix_small_imbalance
|
--- fix_small_imbalance
find_busiest_group
rebalance_domains
run_rebalance_domains
__do_softirq
call_softirq
ksoftirqd
kthread
child_rip
I could see:
[60315.574258] mlx4_core 0000:01:00.0: remove_promisc_qp 483
[60315.579652] mlx4_core 0000:01:00.0: remove_promisc_qp 485
And that was:
482 /*remove from list of promisc qps */
483 mlx4_warn(dev, "%s %d\n", __FUNCTION__, __LINE__);
484 list_del(&pqp->list);
485 mlx4_warn(dev, "%s %d\n", __FUNCTION__, __LINE__);
That really shouldn't take that long, and it doesn't when it's idle.
Might that weird behavior open some window where NIC is configured in a
such way that it doesn't receive the packets?
But well, this may be causing the drops somewhere else. I still have to
check that.
Many thanks,
Marcelo.
next prev parent reply other threads:[~2012-09-21 18:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-20 0:43 mlx4: dropping multicast packets at promisc leave Marcelo Ricardo Leitner
2012-09-20 13:21 ` Or Gerlitz
2012-09-20 15:04 ` Marcelo Ricardo Leitner
2012-09-21 18:32 ` Marcelo Ricardo Leitner [this message]
2012-09-27 20:37 ` Marcelo Ricardo Leitner
2012-09-27 20:45 ` Or Gerlitz
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=505CB2BD.4080402@redhat.com \
--to=mleitner@redhat.com \
--cc=amirv@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=yevgenyp@mellanox.com \
/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).