From: Ben Greear <greearb@candelatech.com>
To: Johannes Berg <johannes@sipsolutions.net>,
David Miller <davem@davemloft.net>
Cc: linux-kernel@vger.kernel.org, herbert@gondor.apana.org.au,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
tgraf@suug.ch
Subject: Re: Question on rhashtable in worst-case scenario.
Date: Thu, 31 Mar 2016 08:13:21 -0700 [thread overview]
Message-ID: <56FD3E91.9020804@candelatech.com> (raw)
In-Reply-To: <1459410405.4576.8.camel@sipsolutions.net>
On 03/31/2016 12:46 AM, Johannes Berg wrote:
> On Wed, 2016-03-30 at 09:52 -0700, Ben Greear wrote:
>
>> If someone can fix rhashtable, then great.
>> I read some earlier comments [1] back when someone else reported
>> similar problems, and the comments seemed to indicate that rhashtable
>> was broken in this manner on purpose to protect against hashing
>> attacks.
>>
>> If you are baking in this type of policy to what should be a basic
>> data-type, then it is not useful for how it is being used in
>> the mac80211 stack.
>>
>> [1] http://lkml.iu.edu/hypermail/linux/kernel/1512.2/01681.html
>>
>
> That's not really saying it's purposely broken, that's more saying that
> Herbert didn't see a point in fixing a case that has awful behaviour
> already.
>
> However, I'm confused now - we can much more easily live with
> *insertion* failures, as the linked email indicates, than *deletion*
> failures, which I think you had indicated originally. Are you really
> seeing *deletion* failures?
>
> If there are in fact *deletion* failures then I think we really need to
> address those in rhashtable, no matter the worst-case behaviour of the
> hashing or keys, since we should be able to delete entries in order to
> get back to something reasonable. Looking at the code though, I don't
> actually see that happening.
>
> If you're seeing only *insertion* failures, which you indicated in the
> root of this thread, then I think for the general case in mac80211 we
> can live with that - we use a seeded jhash for the hash function, and
> since in the general case we cannot accept entries with identical MAC
> addresses to start with, it shouldn't be possible to run into this
> problem under normal use cases.
I see insertion failure, and then later, if of course fails to delete
as well since it was never inserted to begin with. There is no good
way to deal with insertion error, so just need to fix the hashtable.
>
> In this case, I think perhaps you can just patch your local system with
> the many interfaces connecting to the same AP to add the parameter
> Herbert suggested (.insecure_elasticity = true in sta_rht_params). This
> is, after all, very much a case that "normal" operation doesn't even
> get close to.
Old code, even stock kernels, could deal with this properly, so I think it
should be fixed by default. I'll put rhash back in my tree and try that insecure
option and see if it works.
Thanks,
Ben
>
> johannes
>
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
next prev parent reply other threads:[~2016-03-31 15:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-28 20:29 Question on rhashtable in worst-case scenario Ben Greear
2016-03-29 16:16 ` Ben Greear
2016-03-30 9:14 ` Johannes Berg
2016-03-30 13:55 ` Herbert Xu
2016-03-30 14:03 ` Johannes Berg
2016-03-30 14:09 ` Herbert Xu
2016-03-30 16:38 ` David Miller
2016-03-30 16:52 ` Ben Greear
2016-03-31 7:46 ` Johannes Berg
2016-03-31 7:50 ` Herbert Xu
2016-03-31 15:29 ` Johannes Berg
2016-04-01 0:46 ` Herbert Xu
2016-04-01 18:17 ` Ben Greear
2016-04-01 21:34 ` Johannes Berg
2016-04-02 1:46 ` Herbert Xu
2016-04-02 18:33 ` Johannes Berg
2016-03-31 15:13 ` Ben Greear [this message]
2016-03-31 15:22 ` Johannes Berg
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=56FD3E91.9020804@candelatech.com \
--to=greearb@candelatech.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=tgraf@suug.ch \
/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).