Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-12 Thread Herbert Xu
On Tue, Feb 12, 2019 at 10:43:39AM -0800, David Miller wrote: > > Herbert and Johannes, I need some guidance. > > It seems Herbert wants the softirq usage of rhashtables removed, but > since things have been like this for so long that's not the most > reasonable requirement if we can fix it more s

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-12 Thread Bob Copeland
On Tue, Feb 12, 2019 at 08:03:17PM +0100, Johannes Berg wrote: > commit 60854fd94573f0d3b80b55b40cf0140a0430f3ab > Author: Bob Copeland > Date: Wed Mar 2 10:09:20 2016 -0500 > > mac80211: mesh: convert path table to rhashtable > > which is kinda old. Not sure why this didn't surface before

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-12 Thread Johannes Berg
On Tue, 2019-02-12 at 10:43 -0800, David Miller wrote: > Herbert and Johannes, I need some guidance. > > It seems Herbert wants the softirq usage of rhashtables removed, Well, specifically of rhashtable walkers. I can only concede that he's right in that a hashtable walk during softirq (or even

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-12 Thread David Miller
From: Johannes Berg Date: Wed, 6 Feb 2019 10:07:21 +0100 > From: Johannes Berg > > When an rhashtable walk is done from softirq context, we rightfully > get a lockdep complaint saying that we could get a softirq in the > middle of a rehash, and thus deadlock on &ht->lock. This happened > e.g.

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-07 Thread Herbert Xu
On Fri, Feb 08, 2019 at 05:48:34AM +0800, Herbert Xu wrote: > > > > Could you please show me who is doing this so I can review that > > > to see whether it's a legitimate use of this API? > > > > I'm sure you'll say it's not legitimate, but it still exists ;-) > > > > mesh_plink_broken() gets cal

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-07 Thread Johannes Berg
On Fri, 2019-02-08 at 05:48 +0800, Herbert Xu wrote: > On Thu, Feb 07, 2019 at 02:50:54PM +0100, Johannes Berg wrote: > > > > > This interface wasn't designed for use in softirq contexts. > > > > Well, it clearly was used there. You even gave it a gfp_t argument in > > rhashtable_walk_init(), so

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-07 Thread Herbert Xu
On Thu, Feb 07, 2019 at 02:50:54PM +0100, Johannes Berg wrote: > > > This interface wasn't designed for use in softirq contexts. > > Well, it clearly was used there. You even gave it a gfp_t argument in > rhashtable_walk_init(), so you can't really claim it wasn't designed for > this. I see now t

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-07 Thread Johannes Berg
> This interface wasn't designed for use in softirq contexts. Well, it clearly was used there. You even gave it a gfp_t argument in rhashtable_walk_init(), so you can't really claim it wasn't designed for this. I see now that it's ignored, but still? > Could you please show me who is doing this

Re: [PATCH v2] rhashtable: make walk safe from softirq context

2019-02-07 Thread Herbert Xu
On Wed, Feb 06, 2019 at 10:07:21AM +0100, Johannes Berg wrote: > From: Johannes Berg > > When an rhashtable walk is done from softirq context, we rightfully > get a lockdep complaint saying that we could get a softirq in the > middle of a rehash, and thus deadlock on &ht->lock. This happened > e.

[PATCH v2] rhashtable: make walk safe from softirq context

2019-02-06 Thread Johannes Berg
From: Johannes Berg When an rhashtable walk is done from softirq context, we rightfully get a lockdep complaint saying that we could get a softirq in the middle of a rehash, and thus deadlock on &ht->lock. This happened e.g. in mac80211 as it does a walk in softirq context. Fix this by using spi