Re: svn commit: r185482 - head/sys/dev/ath/ath_rate/sample

From: Sam Leffler <sam_at_freebsd.org>
Date: Mon, 08 Dec 2008 14:40:58 -0800
ath's rate control module is bound using symbols so only one of these 
modules can ever be used at a time.  A module dependency is used to 
auto-load the rate control module hence the fixed name.

At the time this code was written it was felt the overhead to use 
indirect function calls and the like was too significant.  Now folks may 
not care in which case you could use some sort of registration-style 
mechanism to allow runtime selection of the rate control algorithm.  Fee 
free to supply patches.

OTOH sample is so vastly superior to the other 2 algorithms that I 
almost removed the others recently.

    Sam

Vladimir Grebenschikov wrote:
> On Mon, 2008-12-08 at 13:33 +0100, Jille Timmermans wrote:
>
> after
> cd /sys/modules/ath_rate_amrr
> make all
> make install
> kldload /boot/kernel/ath_rate .ko
>
> It works now, but why three directories in sys/modules tree make
> same .ko object:
>
> # fgrep ath /sys/modules/Makefile
> 	ath \
> 	ath_rate_amrr \
> 	ath_rate_onoe \
> 	ath_rate_sample \
> # fgrep KMOD /sys/modules/ath_rate*/Makefile
> /sys/modules/ath_rate_amrr/Makefile:KMOD=	ath_rate
> /sys/modules/ath_rate_onoe/Makefile:KMOD=	ath_rate
> /sys/modules/ath_rate_sample/Makefile:KMOD=	ath_rate
> #
>
> Looks like one overwrites another. What is right behaviour ?
>
>   
>> Vladimir Grebenschikov wrote:
>>     
>>>       * On Sun, 2008-11-30 at 19:06 +0000, Sam Leffler wrote:
>>>   
>>>       
>>>> Author: sam
>>>> Date: Sun Nov 30 19:06:35 2008
>>>> New Revision: 185482
>>>> URL: http://svn.freebsd.org/changeset/base/185482
>>>>
>>>> Log:
>>>>   Major overhaul:
>>>>   o eliminate private state indexed by 802.11 rate codes; use the hal's
>>>>     rate tables directly to get the same info
>>>>   o calculate a mask of operational rates to optimize lookups and checks
>>>>     (instead of using for loops and similar)
>>>>   o optimize size bin operations
>>>>   o ignore rates marked as "do not use" in the hal phy tables
>>>>   o fix bug that caused upshifting to break in 11g once the rate dropped
>>>>     below 11Mb/s
>>>>   o add more intelligent multi-rate tx schedules
>>>>   o add support for 1/2 and 1/4 width channels
>>>>   o add dev.ath.X.sample_stats sysctl to dump runtime statistics to the console
>>>>     (needs to go up to a user app)
>>>>   o export more tuning knobs via sysctls (still a couple of magic constants)
>>>>     
>>>>         
>>> Looks like, after that commit, I can't use if_ath loaded as module any
>>> more:
>>>
>>> # kldload /boot/kernel/ath_rate.ko
>>> kldload: can't load /boot/kernel/ath_rate.ko: No such file or directory
>>> # dmesg | tail -n1 
>>> link_elf: symbol ath_hal_computetxtime undefined
>>> #
>>>
>>> Yes, I've read UPDATING entry 20081130.
>>> But I have no ath_hal entry in my kernel config, 
>>> I've loaded ath as KLDs.
>>>
>>> How to fix that problem ?
>>>   
>>>       
>> I have the same problem if I load it with kernel modules.
>> If I compile it into my kernel (with ath, ath_hal and that option (can't 
>> remember it for now)) my system paniced during boot.
>> I can't get a coredump, but I will try getting a stacktrace with ddb 
>> tonight.
>>
>> My Atheros (2413 iirc) wasn't usable before the import (did some 
>> printf's during boot, but I couldn't get ath0 showing up in ifconfig)
>> I am willing to help debugging if needed.
>>
>> -- Jille
>>     
Received on Mon Dec 08 2008 - 22:14:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:38 UTC