All of lore.kernel.org
 help / color / mirror / Atom feed
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.


  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.