From: Michal Kazior <michal.kazior@tieto.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: [RFC 00/12] multi-channel support
Date: Tue, 27 Mar 2012 13:42:38 +0200 [thread overview]
Message-ID: <4F71A7AE.3050405@tieto.com> (raw)
In-Reply-To: <1332765914.5435.7.camel@jlt3.sipsolutions.net>
Johannes Berg wrote:
> Hi,
>
>>> I'm not sure we can easily use such a "stream" for off-channel
>>> operation. In particular, that "stream" might not support multiple
>>> queues.
>>
>> Does it need to? It could as well just map all queues to a single hw
>> queue with this design. I'm not sure if I get your point here.
>>
>>
>> Is it okay for us to not care if the driver supports real queues for
>> ACs? Should we care if a driver maps all ACs from a channel context (or
>> vif for that matter) onto a single hw queue? I'm wondering whether that
>> would simplify code paths?
>
> Well, ok, that would be possible, but I'm not sure I see the point in
> using a stream for off-channel. Today, we completely offload off-channel
> to the device, and I don't see how that could change? Having temporary
> context allocations all the time seems like a lot of thrash?
We could pre-allocate a fixed number of channel contexts based on the
interface combinations, so we'd be "only" left with rebinding those
contexts (and queue mappings along too).
I guess this part of the discussion is moot since we're going to put
queues in vifs (and not in channel contexts).
>> But how do we then check if we need to stop given queue or not? Let's
>> say a driver stops q=2 which corresponds to BE on vif0 and vif1. But
>> then comes mac80211 aggregation and stops BE on vif0. I can only think
>> of a single solution to that: "u8 lock_reasons[256];" in ieee80211_local
>> but it seems like an overkill or is it not?
>
> Essentially that's what I was considering, we'd maintain all the queue
> state per HW queue ID. I said it would be a u8 for the HW queue ID, but
> I don't see anyone using more than say 32 or so, so we wouldn't really
> need 256. But we could go up to 256 if needed (though at that point we
> should probably do dynamic allocation instead.)
We could maybe allocate it according to hw.queues? I think it should be
okay unless a driver has some kind of non-static queues. Are you aware
of such a device/driver?
-- Pozdrawiam / Best regards, Michal Kazior.
next prev parent reply other threads:[~2012-03-27 11:42 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-20 12:21 [RFC 00/12] multi-channel support Michal Kazior
2012-03-23 9:29 ` Johannes Berg
2012-03-23 14:03 ` Michał Kazior
2012-03-23 14:31 ` Johannes Berg
2012-03-26 12:27 ` Michal Kazior
2012-03-26 12:45 ` Johannes Berg
2012-03-27 11:42 ` Michal Kazior [this message]
2012-03-27 11:59 ` Johannes Berg
2012-03-23 15:01 ` Johannes Berg
2012-03-23 15:06 ` Johannes Berg
2012-03-26 12:29 ` Michal Kazior
2012-03-26 13:19 ` Johannes Berg
2012-03-27 14:41 ` Michal Kazior
2012-03-27 15:00 ` Johannes Berg
2012-03-28 6:12 ` Michal Kazior
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=4F71A7AE.3050405@tieto.com \
--to=michal.kazior@tieto.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.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.