From: James Prestwood <prestwoj@gmail.com>
To: Denis Kenzior <denkenz@gmail.com>, iwd@lists.linux.dev
Subject: Re: [PATCH v2 2/4] knownnetworks: sort known frequencies by BSS rank
Date: Thu, 25 Jan 2024 05:21:50 -0800 [thread overview]
Message-ID: <63932e26-03c1-4f32-8596-32fb23bf5567@gmail.com> (raw)
In-Reply-To: <3eaadb6e-53ff-443f-a638-ae091482a74f@gmail.com>
Hi Denis,
On 1/24/24 11:06 AM, Denis Kenzior wrote:
> Hi James,
>
> On 1/24/24 12:55, James Prestwood wrote:
>>
>> On 1/24/24 10:44 AM, Denis Kenzior wrote:
>>> Hi James,
>>>
>>>>> Perhaps an easier way to accomplish this would be to add known
>>>>> frequencies in reverse bss->rank sorted order. That way last seen
>>>>> frequency with best ranked BSS would be first?
>>>>
>>>> I'm not sure I understand, how would this be any different than
>>>> just reversing
>>>
>>> Well, right now we maintain the least recently seen frequency list
>>> in a very simple way:
>>>
>>> - When scan results become available
>>> - Walk the result list (which is sorted by bss_rank?)
>>> - Add each result's frequency to the frequency cache
>>> - Remove any matching entry in the cache
>>> - Add it to head
>>>
>>> Since the result list is sorted, the top entry in the frequency
>>> cache is the least ranked. This doesn't matter for small networks
>>> since there would only be a couple results.
>>>
>>> What we should do is to add the frequencies to the frequency cache
>>> in reverse order. That way the highest ranked bss is at the top of
>>> the frequency cache.
Ok I understand what your getting at now, but providing the list in
reverse order is somewhat problematic. The majority of additions are
going to be from station's can results, via network_bss_add(). We
_could_ reverse the BSS list in station but that seems like an expensive
operation for each scan, and I really don't want to muck with that code.
The only somewhat simple place to reverse the list is when a known
network is added. But again its expensive.
To avoid refactoring elsewhere, I think the only way would be to
timestamp entries (based on bss->time_stamp) and sort by both rank and
timestamp. We could also limit the list to e.g. 5 values if we wanted to
avoid storing a ton of u64's in memory.
Thanks,
James
>>
> Regards,
> -Denis
next prev parent reply other threads:[~2024-01-25 13:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-24 13:39 [PATCH v2 1/4] knownnetworks: pass scan_bss to known_network_add_frequency James Prestwood
2024-01-24 13:39 ` [PATCH v2 2/4] knownnetworks: sort known frequencies by BSS rank James Prestwood
2024-01-24 18:10 ` Denis Kenzior
2024-01-24 18:33 ` James Prestwood
2024-01-24 18:44 ` Denis Kenzior
2024-01-24 18:55 ` James Prestwood
2024-01-24 19:06 ` Denis Kenzior
2024-01-25 13:21 ` James Prestwood [this message]
2024-01-25 15:39 ` Denis Kenzior
2024-01-24 13:40 ` [PATCH v2 3/4] station: knownnetworks: limit quick scans to 5 freqs per network James Prestwood
2024-01-24 18:21 ` Denis Kenzior
2024-01-24 13:40 ` [PATCH v2 4/4] auto-t: add test for known frequency sorting/maximum James Prestwood
2024-01-24 18:16 ` [PATCH v2 1/4] knownnetworks: pass scan_bss to known_network_add_frequency Denis Kenzior
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=63932e26-03c1-4f32-8596-32fb23bf5567@gmail.com \
--to=prestwoj@gmail.com \
--cc=denkenz@gmail.com \
--cc=iwd@lists.linux.dev \
/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