All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: David Ahern <dsahern@gmail.com>,
	Ido Schimmel <idosch@mellanox.com>,
	netdev@vger.kernel.org
Cc: davem@davemloft.net, roopa@cumulusnetworks.com,
	nikolay@cumulusnetworks.com, pch@ordbogen.com, jkbs@redhat.com,
	yoshfuji@linux-ipv6.org, mlxsw@mellanox.com
Subject: Re: [PATCH net-next 1/4] ipv6: Calculate hash thresholds for IPv6 nexthops
Date: Wed, 2 May 2018 09:43:50 -0700	[thread overview]
Message-ID: <e4c89c14-99fc-5ba5-667b-0220520f47f3@gmail.com> (raw)
In-Reply-To: <5550c628-5014-427b-60c9-71cf80462723@gmail.com>



On 01/09/2018 07:43 PM, David Ahern wrote:
> On 1/9/18 7:40 AM, Ido Schimmel wrote:
>> Before we convert IPv6 to use hash-threshold instead of modulo-N, we
>> first need each nexthop to store its region boundary in the hash
>> function's output space.
>>
>> The boundary is calculated by dividing the output space equally between
>> the different active nexthops. That is, nexthops that are not dead or
>> linkdown.
>>
>> The boundaries are rebalanced whenever a nexthop is added or removed to
>> a multipath route and whenever a nexthop becomes active or inactive.
>>
>> Signed-off-by: Ido Schimmel <idosch@mellanox.com>
>> ---
>>  include/net/ip6_fib.h   |  1 +
>>  include/net/ip6_route.h |  7 ++++
>>  net/ipv6/ip6_fib.c      |  8 ++---
>>  net/ipv6/route.c        | 96 +++++++++++++++++++++++++++++++++++++++++++++++++
>>  4 files changed, 106 insertions(+), 6 deletions(-)
>>
> 
> LGTM.
> Acked-by: David Ahern <dsahern@gmail.com>
> 

For some reason I have a divide by zero error booting my hosts with latest net tree.

What guarantee do we have that total is not zero when rt6_upper_bound_set() is called ?



[    8.498639] divide error: 0000 [#1] SMP PTI
[    8.503178] gsmi: Log Shutdown Reason 0x03
[    8.507270] Modules linked in: bnx2x mdio
[    8.511276] CPU: 17 PID: 116 Comm: kworker/17:0 Not tainted 4.17.0-smp-DEV #110
[    8.518571] Hardware name: Intel RML,PCH/Ibis_QC_18, BIOS 2.40.0 06/22/2016
[    8.525526] Workqueue: ipv6_addrconf addrconf_dad_work
[    8.530662] RIP: 0010:rt6_multipath_rebalance.part.82+0x1cb/0x1f0
[    8.536752] RSP: 0018:ffffba72867cbbf8 EFLAGS: 00010246
[    8.541966] RAX: 0000000000000000 RBX: 0000000000000025 RCX: ffff9d555ab73180
[    8.549090] RDX: 0000000000000000 RSI: ffff9d4d5a34b1c0 RDI: 0000000000000000
[    8.556212] RBP: ffffba72867cbc00 R08: 0000000000000000 R09: 0000000000000000
[    8.563336] R10: 0000000000000000 R11: 0000000000000000 R12: ffff9d5559f95680
[    8.570457] R13: ffff9d4d5a34b1c0 R14: ffff9d555ab73180 R15: 0000000000000000
[    8.577579] FS:  0000000000000000(0000) GS:ffff9d4d5fc40000(0000) knlGS:0000000000000000
[    8.585654] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    8.591391] CR2: 00007fffe47ff000 CR3: 0000000c39c0a001 CR4: 00000000000606e0
[    8.598515] Call Trace:
[    8.600961]  ? rt6_multipath_rebalance+0x21/0x30
[    8.605579]  fib6_add+0x75f/0xf70
[    8.608899]  ? __wake_up+0x13/0x20
[    8.612303]  ? netlink_broadcast_filtered+0x14c/0x3c0
[    8.617355]  __ip6_ins_rt+0x4c/0x70
[    8.620847]  ip6_ins_rt+0x6e/0xa0
[    8.624157]  __ipv6_ifa_notify+0x226/0x2e0
[    8.628249]  ipv6_ifa_notify+0x2a/0x40
[    8.631999]  addrconf_dad_completed+0x59/0x360
[    8.636438]  addrconf_dad_work+0x11c/0x400
[    8.640536]  ? addrconf_dad_work+0x11c/0x400
[    8.644810]  process_one_work+0x184/0x370
[    8.648820]  ? process_one_work+0x184/0x370
[    8.652996]  worker_thread+0x35/0x3a0
[    8.656654]  kthread+0x121/0x140
[    8.659887]  ? process_one_work+0x370/0x370
[    8.664073]  ? kthread_create_worker_on_cpu+0x70/0x70
[    8.669118]  ret_from_fork+0x35/0x40
[    8.672693] Code: c3 8b b9 38 01 00 00 eb aa 48 63 81 38 01 00 00 89 fa 41 89 f8 c1 ea 1f 01 fa d1 fa 48 63 d2 49 89 c2 48 c1 e0 1f 48 01 d0 31 d2 <49> f7 f0 83 e8 01 48 39 ce 89 81 b4 00 00 00 0f 85 e2 fe ff ff 
[    8.691533] RIP: rt6_multipath_rebalance.part.82+0x1cb/0x1f0 RSP: ffffba72867cbbf8
[    8.699135] ---[ end trace 9ae26819121cdc3a ]---
[    8.703760] Kernel panic - not syncing: Fatal exception in interrupt
[    8.710169] Kernel Offset: 0x3d200000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[    8.721256] gsmi: Log Shutdown Reason 0x02
[    8.725357] Rebooting in 10 seconds..

  reply	other threads:[~2018-05-02 16:43 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-09 14:40 [PATCH net-next 0/4] ipv6: Add support for non-equal-cost multipath Ido Schimmel
2018-01-09 14:40 ` [PATCH net-next 1/4] ipv6: Calculate hash thresholds for IPv6 nexthops Ido Schimmel
2018-01-10  3:43   ` David Ahern
2018-05-02 16:43     ` Eric Dumazet [this message]
2018-05-02 17:21       ` Ido Schimmel
2018-05-02 17:52         ` Ido Schimmel
2018-05-02 18:53           ` Ido Schimmel
2018-05-02 18:58             ` David Ahern
2018-05-02 19:04               ` Ido Schimmel
2018-05-02 20:48                 ` Thomas Winter
2018-05-02 20:56                   ` David Ahern
2018-05-04  1:13                     ` David Ahern
2018-01-09 14:40 ` [PATCH net-next 2/4] ipv6: Use a 31-bit multipath hash Ido Schimmel
2018-01-10  3:43   ` David Ahern
2018-01-09 14:40 ` [PATCH net-next 3/4] ipv6: Use hash-threshold instead of modulo-N Ido Schimmel
2018-01-10  3:54   ` David Ahern
2018-01-10 12:02     ` Ido Schimmel
2018-01-09 14:40 ` [PATCH net-next 4/4] ipv6: Add support for non-equal-cost multipath Ido Schimmel
2018-01-10  3:48   ` David Ahern
2018-01-10 11:47     ` Ido Schimmel
2018-01-10 15:53       ` David Ahern
2018-01-10  4:38 ` [PATCH net-next 0/4] " David Ahern
2018-01-10 12:31   ` Ido Schimmel
2018-01-10 20:15 ` David Miller

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=e4c89c14-99fc-5ba5-667b-0220520f47f3@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dsahern@gmail.com \
    --cc=idosch@mellanox.com \
    --cc=jkbs@redhat.com \
    --cc=mlxsw@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@cumulusnetworks.com \
    --cc=pch@ordbogen.com \
    --cc=roopa@cumulusnetworks.com \
    --cc=yoshfuji@linux-ipv6.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.