[Bloat] Testing fq_codel on Android Galaxy Nexus AK kernel

Mário Sérgio Fujikawa Ferreira liouxbsd at gmail.com
Sat Mar 9 20:21:08 EST 2013


   Further information gathering. I won't procced with any further 
testing. I am neither sure how to interpret the data I already have for 
wlan0 nor that I am using the proper tools for the job.

   I look forward to your input. I would like to be able to gather good 
values for both quantum and limit. I want to set them appropriately for 
the radio and wifi connections. Since we don't have the properly patched 
tc command, I'll probably be hard coding this on the fq_codel module itself.

   Are there recommendations? If a guideline is available/suggested, 
I'll try to find good average values for this particular phone.

   The data I gathered currently follows:

- Android phone Samsung Galaxy Nexus GSM I9250 running stock Yakju 4.2.2 
with AK kernel
- WIFI connected to LAN, ADSL 512KiB U, Phone Google Drive upload at 
full speed. No other traffic on the network
- The drivers are available in binary form from 
https://developers.google.com/android/nexus/drivers
- Quick look on the Galaxy Nexus 
http://wiki.rootzwiki.com/Samsung_Galaxy_Nexus
- There is a teardown of all components on 
http://www.ifixit.com/Teardown/Samsung+Galaxy+Nexus+Teardown/7182/1
     - Radio: Intel XG626 Baseband Modem
     - WiFi / Bluetooth module: Broadcom BCM4330
         - Samsung SWB-B42 BT 4.0 Dual Band Wlan FM Tx/Rx. Chipworks 
says the module is actually manufactured by Murata, and houses a 
Broadcom BCM4330 die inside.

# uname -a
Linux localhost 3.0.67+~ak.710.422.Cylon #1 SMP PREEMPT Wed Feb 27 
06:54:36 CET 2013 armv7l GNU/Linux
# netcfg
lo       UP                                   127.0.0.1/8 0x00000049
ifb0     DOWN                                   0.0.0.0/0 0x00000082
ifb1     DOWN                                   0.0.0.0/0 0x00000082
tunl0    DOWN                                   0.0.0.0/0 0x00000080
sit0     DOWN                                   0.0.0.0/0 0x00000080
ip6tnl0  DOWN                                   0.0.0.0/0 0x00000080
rmnet0   DOWN                                   0.0.0.0/0 0x00001090
rmnet1   DOWN                                   0.0.0.0/0 0x00001090
rmnet2   DOWN                                   0.0.0.0/0 0x00001090
p2p0     UP                                     0.0.0.0/0 0x00001003
wlan0    UP                                  10.0.0.101/25 0x00001043
# ls -l /sys/class/net/p2p0/
-r--r--r-- root     root         4096 2013-03-02 21:33 addr_assign_type
-r--r--r-- root     root         4096 2013-03-02 21:33 addr_len
-r--r--r-- root     root         4096 2013-03-02 21:33 address
-r--r--r-- root     root         4096 2013-03-02 21:33 broadcast
-r--r--r-- root     root         4096 2013-03-02 21:33 carrier
-r--r--r-- root     root         4096 2013-03-02 21:33 dev_id
lrwxrwxrwx root     root              2013-03-02 21:33 device -> 
../../../mmc1:0001:2
-r--r--r-- root     root         4096 2013-03-02 21:33 dormant
-r--r--r-- root     root         4096 2013-03-02 21:33 duplex
-r--r--r-- root     root         4096 2013-03-02 21:33 features
-rw-r--r-- root     root         4096 2013-03-02 21:33 flags
-rw-r--r-- root     root         4096 2013-03-02 21:33 ifalias
-r--r--r-- root     root         4096 2013-03-02 21:33 ifindex
-r--r--r-- root     root         4096 2013-03-02 21:33 iflink
-r--r--r-- root     root         4096 2013-03-02 21:33 link_mode
-rw-r--r-- root     root         4096 2013-03-02 21:33 mtu
-rw-r--r-- root     root         4096 2013-03-02 21:33 netdev_group
-r--r--r-- root     root         4096 2013-03-02 21:33 operstate
lrwxrwxrwx root     root              2013-03-02 21:33 phy80211 -> 
../../ieee80211/phy0
drwxr-xr-x root     root              2013-03-02 21:33 power
drwxr-xr-x root     root              2013-03-02 21:33 queues
-r--r--r-- root     root         4096 2013-03-02 21:33 speed
drwxr-xr-x root     root              2013-03-02 21:33 statistics
lrwxrwxrwx root     root              2013-03-02 21:33 subsystem -> 
../../../../../../../../../../class/net
-rw-r--r-- root     root         4096 2013-03-02 21:33 tx_queue_len
-r--r--r-- root     root         4096 2013-03-02 21:33 type
-rw-r--r-- root     root         4096 2013-03-02 21:33 uevent

# ls -l /sys/class/net/wlan0/
-r--r--r-- root     root         4096 2013-03-02 21:38 addr_assign_type
-r--r--r-- root     root         4096 2013-03-02 21:38 addr_len
-r--r--r-- root     root         4096 2013-03-02 21:38 address
-r--r--r-- root     root         4096 2013-03-02 21:38 broadcast
-r--r--r-- root     root         4096 2013-03-02 21:38 carrier
-r--r--r-- root     root         4096 2013-03-02 21:38 dev_id
lrwxrwxrwx root     root              2013-03-02 21:38 device -> 
../../../mmc1:0
001:2
-r--r--r-- root     root         4096 2013-03-02 21:38 dormant
-r--r--r-- root     root         4096 2013-03-02 21:38 duplex
-r--r--r-- root     root         4096 2013-03-02 21:38 features
-rw-r--r-- root     root         4096 2013-03-02 21:38 flags
-rw-r--r-- root     root         4096 2013-03-02 21:38 ifalias
-r--r--r-- root     root         4096 2013-03-02 21:38 ifindex
-r--r--r-- root     root         4096 2013-03-02 21:38 iflink
-r--r--r-- root     root         4096 2013-03-02 21:38 link_mode
-rw-r--r-- root     root         4096 2013-03-02 21:38 mtu
-rw-r--r-- root     root         4096 2013-03-02 21:38 netdev_group
-r--r--r-- root     root         4096 2013-03-02 21:38 operstate
lrwxrwxrwx root     root              2013-03-02 21:38 phy80211 -> 
../../ieee80211/phy0
drwxr-xr-x root     root              2013-03-02 21:38 power
drwxr-xr-x root     root              2013-03-02 21:38 queues
-r--r--r-- root     root         4096 2013-03-02 21:38 speed
drwxr-xr-x root     root              2013-03-02 21:31 statistics
lrwxrwxrwx root     root              2013-03-02 21:38 subsystem -> 
../../../../../../../../../../class/net
-rw-r--r-- root     root         4096 2013-03-02 21:38 tx_queue_len
-r--r--r-- root     root         4096 2013-03-02 21:38 type
-rw-r--r-- root     root         4096 2013-03-02 21:38 uevent

   By quick traffic examination, it seems that all WIFI traffic flows 
through wlan0:

# tc -s qdisc
Android does not support qdisc 'fq_codel'
qdisc fq_codel 8001: dev rmnet0 root refcnt 2 [cannot parse qdisc 
parameters]
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
Android does not support qdisc 'prio'
qdisc pfifo_fast 0: dev p2p0 root refcnt 2 [cannot parse qdisc parameters]
  Sent 468 bytes 6 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
Android does not support qdisc 'prio'
qdisc pfifo_fast 0: dev wlan0 root refcnt 2 [cannot parse qdisc parameters]
  Sent 38442999 bytes 26737 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0

   Here follows the information on wlan0 interface:

# cat /sys/class/net/wlan0/tx_queue_len
1000
# cat /sys/class/net/wlan0/speed
sh: cat: /sys/class/net/wlan0/speed: Invalid argument
# ls -l /sys/class/net/wlan0/queues
drwxr-xr-x root     root              2013-03-02 22:04 rx-0
drwxr-xr-x root     root              2013-03-02 22:04 tx-0
# ls -l /sys/class/net/wlan0/queues/tx-0
-rw-r--r-- root     root         4096 2013-03-02 22:04 xps_cpus

   Tests follow in the next email.



More information about the Bloat mailing list