[Click] Badness in dst_release - click access point

Abram schoutteet at gmail.com
Wed Feb 28 07:41:28 EST 2007


Hello

I've been trying to set up an access point in click for a while now.
To accomplish this I chose to use a slightly modified version of the
access_point.click script that can be found in the conf/wifi/ directory.
(see below for the configuration)
I run this script in kernel mode.
My problem is that after a random time ( a few seconds to a minute) the
following error messages start to appear:


Feb 27 17:09:59 blue44 kernel: Badness in dst_release at
/lib/modules/2.6.16.13/build/include/net/dst.h:154
Feb 27 17:09:59 blue44 kernel:  [pg0+278152416/1069921280]
_Z16skb_recycle_fastP7sk_buff+0xd0/0xe0 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278152588/1069921280]
_ZN15RecycledSkbPool7recycleEP7sk_buff+0x9c/0x110 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278153255/1069921280]
_Z19skbmgr_recycle_skbsP7sk_buff+0x17/0x30 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278016552/1069921280]
_ZN8FilterTX13simple_actionEP6Packet+0x158/0x190 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+277457999/1069921280]
_ZN7Element4pushEiP6Packet+0x1f/0x50 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+277458031/1069921280]
_ZN7Element4pushEiP6Packet+0x3f/0x50 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+277458031/1069921280]
_ZN7Element4pushEiP6Packet+0x3f/0x50 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+277807646/1069921280]
_ZN10FromDevice8run_taskEv+0x5e/0x170 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+277548440/1069921280]
_ZN12RouterThread6driverEv+0x128/0x4a0 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278172806/1069921280]
_ZN6VectorIiE7reserveEi+0x46/0xa0 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278135848/1069921280]
_Z11click_schedPv+0x98/0x150 [click]
Feb 27 17:09:59 blue44 kernel:  [pg0+278135696/1069921280]
_Z11click_schedPv+0x0/0x150 [click]
Feb 27 17:09:59 blue44 kernel:  [kernel_thread_helper+5/20]
kernel_thread_helper+0x5/0x14
Feb 27 17:09:59 blue44 kernel: chatter: FilterTX::Completed Kill A
Feb 27 17:09:59 blue44 kernel: Badness in dst_release at
include/net/dst.h:154
Feb 27 17:09:59 blue44 kernel:  [__kfree_skb+260/272]
__kfree_skb+0x104/0x110
Feb 27 17:09:59 blue44 kernel:  [pg0+273858364/1069921280]
ath_tx_processq+0x2ec/0x6b0 [ath_pci]
Feb 27 17:09:59 blue44 kernel:  [pg0+273822697/1069921280]
ath_intr+0x1c9/0x330 [ath_pci]
Feb 27 17:09:59 blue44 kernel:  [pg0+273860465/1069921280]
ath_tx_tasklet+0x121/0x130 [ath_pci]
Feb 27 17:09:59 blue44 kernel:  [tasklet_action+70/112]
tasklet_action+0x46/0x70
Feb 27 17:09:59 blue44 kernel:  [__do_softirq+125/144]
__do_softirq+0x7d/0x90
Feb 27 17:09:59 blue44 kernel:  [do_softirq+38/48] do_softirq+0x26/0x30
Feb 27 17:09:59 blue44 kernel:  [do_IRQ+30/48] do_IRQ+0x1e/0x30
Feb 27 17:09:59 blue44 kernel:  [common_interrupt+26/32]
common_interrupt+0x1a/0x20
Feb 27 17:09:59 blue44 kernel:  [default_idle+50/96] default_idle+0x32/0x60
Feb 27 17:09:59 blue44 kernel:  [cpu_idle+80/96] cpu_idle+0x50/0x60
Feb 27 17:09:59 blue44 kernel:  [start_kernel+333/368]
start_kernel+0x14d/0x170
Feb 27 17:09:59 blue44 kernel:  [unknown_bootoption+0/432]
unknown_bootoption+0x0/0x1b0


This causes my throughput to drop below 15 Mbps and may prevent me from
uninstalling my click configuration.
If this is the case I get the the following message:


blue44 kernel: unregister_netdevice: waiting for ap to become free. Usage
count = 7


The cause of the problem seems to be the p->kill() in the FilterTX element
(when a packet that was sent by this node, and received via transmit
feedback is detected and killed).  And can be traced to the
skb_recycle_fast() member function in skbmgr.cc and the
dst_release()function in dst.h.

If anyone can give me a hint on how to solve this problem, I would really
appreciate it.

Some info:

Linux blue44.test 2.6.16.13 #3 Tue Feb 27 12:12:45 CET 2007 i686 GNU/Linux

click-install (Click) 1.5.0

madwifi 0.9.3 (checked out on 21 feb 2007 from SVN)
echo 804 > /proc/sys/net/ath0/dev_type

slightly modified access_point.click script:

AddressInfo(ap_bssid 10.0.0.99/8 00:0D:88:FA:48:F9);
winfo :: WirelessInfo(SSID "HELP", BSSID ap_bssid, CHANNEL 11);
rates :: AvailableRates(DEFAULT 2 4 11 22 72 96 108);

FromHost(ap, ap_bssid, ETHER ap_bssid)
  -> wifi_encap :: WifiEncap(0x02, WIRELESS_INFO winfo)
  -> set_rate :: SetTXRate(108)
  -> q :: Queue(20)
  -> AthdescEncap()
  -> to_dev :: ToDevice (ath0);

from_dev :: FromDevice(ath0)
-> AthdescDecap()
-> phyerr_filter :: FilterPhyErr()
-> tx_filter :: FilterTX()
-> dupe :: WifiDupeFilter()
-> wifi_cl :: Classifier(0/08%0c 1/01%03, //data
                         0/00%0c); //mgt

wifi_cl [0]
-> decap :: WifiDecap()
-> HostEtherFilter(ap_bssid, DROP_OTHER true, DROP_OWN true)
-> ToHost(ap)

wifi_cl [1] -> mgt_cl :: Classifier(0/00%f0, //assoc req
                                    0/10%f0, //assoc resp
                                    0/40%f0, //probe req
                                    0/50%f0, //probe resp
                                    0/80%f0, //beacon
                                    0/a0%f0, //disassoc
                                    0/b0%f0, //disassoc
                                    );

mgt_cl [0] -> PrintWifi()
-> ar :: AssociationResponder(WIRELESS_INFO winfo,
                              RT rates)
-> q;

mgt_cl [1] -> PrintWifi() -> Discard;

mgt_cl [2]
-> beacon_source :: BeaconSource(DEBUG true, WIRELESS_INFO winfo, RT rates)
-> q;

mgt_cl [3] -> PrintWifi() -> Discard;
mgt_cl [4] -> bs :: BeaconScanner(RT rates) -> Discard;
mgt_cl [5] -> PrintWifi() -> Discard;

mgt_cl [6] -> PrintWifi() -> auth :: OpenAuthResponder(WIRELESS_INFO winfo)
-> q;

Kind regards,

Abram Schoutteet


More information about the click mailing list