linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Felix Fietkau <nbd@openwrt.org>
Cc: Nick Kossifidis <mickflemm@gmail.com>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH v2] This allows ath5k to support virtual STA and AP interfaces.
Date: Mon, 27 Sep 2010 11:57:30 -0700	[thread overview]
Message-ID: <4CA0E91A.7090704@candelatech.com> (raw)
In-Reply-To: <4C9DBD69.2070700@openwrt.org>

On 09/25/2010 02:14 AM, Felix Fietkau wrote:
> On 2010-09-24 8:17 PM, Ben Greear wrote:
>> On 09/24/2010 10:46 AM, Nick Kossifidis wrote:
>>> 2010/9/23<greearb@candelatech.com>:
>>>> From: Ben Greear<greearb@candelatech.com>
>>>>
>>>> +#define ATH5K_VIF_MAX  2048
>>>
>>> This is too much !!! 2048 interfaces with a total of 4 beacon buffers
>>> 40 rx buffers and 200 tx buffers ? Has anyone tested this ?
>>>
>>> Also think about embedded devices, we don't want to waste memory like this...
>>>
>>>> +       struct ieee80211_vif *vifs[ATH5K_VIF_MAX];
>>
>> It only costs 4 or 8 bytes per pointer as long as no one actually
>> adds the vifs.
>>
>> We've tested at least 128 on an old 1Ghz VIA system, and I'd hope for more
>> on more modern hardware.  I didn't think the driver should make the decision
>> to limit un-necessarily.
>>
>> If you still think this is too much, then tell me the biggest number
>> you wouldn't complain about :)
> Actually, looking at the code, I don't see much reason to even have this
> array. Most of the time the code is iterating over the list anyway, so
> we might as well just have a linked list here...
> That way we can avoid introducing bogus limitations or memory waste.

I tried really hard to just use the mac80211 vif list, but I cannot
find a sane way to lookup a vif by a particular immutable piece of information.
I *could* find it based on mac-addr with a linear search by abusing
the mac80211 iterator logic, but that seems fragile (can't macs change?)
as well as a poor perfomer.

Any other regular list based approach is going to involve linear lookups
as well.  See ath5k_beacon_send for the need to lookup based on
an index or similar.

I think for now, I'd like to just stay with a 512 fixed size array
for the vifs.  Maybe someday someone will add an index to ieee80211_vif
and logic to look it up by hash, but I suspect I'd have at best
a long slow time of trying to get that sort of change upstream.

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


  reply	other threads:[~2010-09-27 18:57 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-23 20:07 [PATCH v2] This allows ath5k to support virtual STA and AP interfaces greearb
2010-09-24 17:46 ` Nick Kossifidis
2010-09-24 18:17   ` Ben Greear
2010-09-24 21:49     ` Nick Kossifidis
2010-09-25  9:14     ` Felix Fietkau
2010-09-27 18:57       ` Ben Greear [this message]
2010-09-27 19:31         ` Felix Fietkau
2010-09-24 19:34   ` Richard Farina
2010-09-24 19:40     ` Ben Greear

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=4CA0E91A.7090704@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mickflemm@gmail.com \
    --cc=nbd@openwrt.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).