All of lore.kernel.org
 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 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.