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. 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?