[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190605060112.so7i4aku2htxng2z@kafai-mbp.dhcp.thefacebook.com>
Date: Wed, 5 Jun 2019 06:01:15 +0000
From: Martin Lau <kafai@...com>
To: David Ahern <dsahern@...il.com>
CC: Wei Wang <weiwan@...gle.com>, David Ahern <dsahern@...nel.org>,
"David S . Miller" <davem@...emloft.net>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
"idosch@...lanox.com" <idosch@...lanox.com>,
"saeedm@...lanox.com" <saeedm@...lanox.com>
Subject: Re: [PATCH v2 net-next 4/7] ipv6: Plumb support for nexthop object in
a fib6_info
On Tue, Jun 04, 2019 at 08:05:58PM -0600, David Ahern wrote:
> On 6/4/19 6:39 PM, Martin Lau wrote:
> > IMO, ip6_create_rt_rcu(), which returns untracked rt, was a mistake
> > and removing it has been overdue. Tracking down the unregister dev
> > bug is not easy.
>
> I must be missing something because I don't have the foggiest idea why
> you are barking up this tree.
>
> If code calls a function that returns a dst_entry with a refcount taken,
> that code is responsible for releasing it.
The code is responsible but there is no control on when.
That code can cache it for a long time. May be re-look at the dev_put() in
this recent bug fix to begin with?
f5b51fe804ec ("ipv6: route: purge exception on removal")
and also the current rt6_uncached_list + rt6_uncached_list_flush_dev()
> Using a pcpu cached dst
> versus a new one in no way tells you who took the dst and bumped the
> refcnt on the netdev. Either way the dst refcount is bumped. Tracking
> netdev refcnt is the only way to methodically figure it out.
>
> What am I overlooking here?
Powered by blists - more mailing lists