From: Felix Fietkau <nbd@openwrt.org>
To: Ben Greear <greearb@candelatech.com>
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 21:31:48 +0200 [thread overview]
Message-ID: <4CA0F124.9040602@openwrt.org> (raw)
In-Reply-To: <4CA0E91A.7090704@candelatech.com>
On 2010-09-27 8:57 PM, Ben Greear wrote:
> 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.
For ath5k_beacon_send it's much better to just store vif pointers in the
sc->bslot array, since the number of beacon slots is much more limited
anyway.
> 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.
The changes can be simplified a lot by removing the array, I think this
should be done before the patch gets merged. It would be much cleaner
that way, since it also allows you to get rid of the loop looking for a
free slot, and you no longer need to iterate over all those empty slots
when iterating over lots of interfaces.
- Felix
next prev parent reply other threads:[~2010-09-27 19:32 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
2010-09-27 19:31 ` Felix Fietkau [this message]
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=4CA0F124.9040602@openwrt.org \
--to=nbd@openwrt.org \
--cc=greearb@candelatech.com \
--cc=linux-wireless@vger.kernel.org \
--cc=mickflemm@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.