From: David Ahern <dsahern@gmail.com>
To: Ido Schimmel <idosch@mellanox.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
netdev@vger.kernel.org, davem@davemloft.net, mlxsw@mellanox.com,
roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
kafai@fb.com, hannes@stressinduktion.org,
yoshfuji@linux-ipv6.org, edumazet@google.com,
yanhaishuang@cmss.chinamobile.com
Subject: Re: [patch net-next 11/17] ipv6: fib: Allow non-FIB users to take reference on route
Date: Wed, 19 Jul 2017 10:29:14 -0600 [thread overview]
Message-ID: <ad7666d8-ede5-9518-e169-3f5f6f0b6798@gmail.com> (raw)
In-Reply-To: <20170719161727.GC6078@splinter>
On 7/19/17 10:17 AM, Ido Schimmel wrote:
> I did exactly that in the beginning, but it didn't sit right with me for
> the exact reason you mentioned - it can be a PITA to debug.
>
> If we use rt6i_ref for something other than FIB references, then it
> breaks existing code that relies on rt6i_ref being 0 to indicate it's
> no longer used by the FIB. A non-zero value can now mean "not used by
> the FIB, but waiting for some module to drop the reference in its
> workqueue".
>
> The BUG_ON() mentioned in the commit message is just one example.
> Another check was added by you in commit 8048ced9b.
>
> So I think we both want the same thing, but I'm not sure how your
> approach is safer.
A single reference counter rt6i_ref is best.
There are 2 reads of that counter to determine if the rt is still in the
FIB. Both of those stem from side effects of using the 'lo' for the
device for host addresses. I think an explicit flag can be used for that
purpose instead of trying to deduce it from the reference counter. The
commit you referenced copied what is done in init_loopback for
consistency (both have same end goal).
next prev parent reply other threads:[~2017-07-19 16:29 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-19 7:02 [patch net-next 00/17] mlxsw: Support for IPv6 UC router Jiri Pirko
2017-07-19 7:02 ` [patch net-next 01/17] net: core: Make the FIB notification chain generic Jiri Pirko
2017-07-19 14:11 ` David Ahern
2017-07-19 14:35 ` Ido Schimmel
2017-07-19 7:02 ` [patch net-next 02/17] mlxsw: spectrum_router: Ignore address families other than IPv4 Jiri Pirko
2017-07-19 7:02 ` [patch net-next 03/17] rocker: " Jiri Pirko
2017-07-19 7:02 ` [patch net-next 04/17] net: fib_rules: Implement notification logic in core Jiri Pirko
2017-07-19 7:02 ` [patch net-next 05/17] ipv6: fib_rules: Check if rule is a default rule Jiri Pirko
2017-07-19 7:02 ` [patch net-next 06/17] ipv6: fib: Add FIB notifiers callbacks Jiri Pirko
2017-07-19 7:02 ` [patch net-next 07/17] ipv6: fib: Add in-kernel notifications for route add / delete Jiri Pirko
2017-07-19 15:38 ` David Ahern
2017-07-19 15:53 ` Ido Schimmel
2017-07-19 7:02 ` [patch net-next 08/17] ipv6: fib_rules: Dump rules during registration to FIB chain Jiri Pirko
2017-07-19 7:02 ` [patch net-next 09/17] ipv6: fib: Dump tables " Jiri Pirko
2017-07-19 7:02 ` [patch net-next 10/17] ipv6: fib: Add offload indication to routes Jiri Pirko
2017-07-19 15:27 ` David Ahern
2017-07-19 15:49 ` Ido Schimmel
2017-07-19 15:53 ` David Ahern
2017-07-19 16:19 ` Ido Schimmel
2017-07-19 7:02 ` [patch net-next 11/17] ipv6: fib: Allow non-FIB users to take reference on route Jiri Pirko
2017-07-19 15:49 ` David Ahern
2017-07-19 16:17 ` Ido Schimmel
2017-07-19 16:29 ` David Ahern [this message]
2017-07-19 7:02 ` [patch net-next 12/17] mlxsw: spectrum_router: Demultiplex FIB event based on family Jiri Pirko
2017-07-19 7:02 ` [patch net-next 13/17] mlxsw: spectrum_router: Sanitize IPv6 FIB rules Jiri Pirko
2017-07-19 7:02 ` [patch net-next 14/17] mlxsw: spectrum_router: Add support for IPv6 routes addition / deletion Jiri Pirko
2017-07-19 16:14 ` David Ahern
2017-07-19 16:30 ` Ido Schimmel
2017-07-19 16:36 ` David Ahern
2017-07-19 16:43 ` Ido Schimmel
2017-07-19 7:02 ` [patch net-next 15/17] mlxsw: spectrum_router: Add support for route replace Jiri Pirko
2017-07-19 7:02 ` [patch net-next 16/17] mlxsw: spectrum_router: Abort on source-specific routes Jiri Pirko
2017-07-19 16:16 ` David Ahern
2017-07-19 16:36 ` Ido Schimmel
2017-07-19 7:02 ` [patch net-next 17/17] mlxsw: spectrum_router: Don't ignore IPv6 notifications Jiri Pirko
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=ad7666d8-ede5-9518-e169-3f5f6f0b6798@gmail.com \
--to=dsahern@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hannes@stressinduktion.org \
--cc=idosch@mellanox.com \
--cc=jiri@resnulli.us \
--cc=kafai@fb.com \
--cc=mlxsw@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=roopa@cumulusnetworks.com \
--cc=yanhaishuang@cmss.chinamobile.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 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).