AP with rt3072 USB dongle -- intermittently unresponsive

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=6223

Ivo

20-02-2013 02:16:50

I have a Raspberry Pi set up as an access point using a dongle with the rt3072 chip. The AP is working and is for the most part very responsive. In a configuration whereby the AP sends data to the only connected client (running only an ssh session), the data traffic will periodically halt for period of between 5 and 20 seconds and then continue until the next halt. The probability of a halt occurring appears to grow with the volume of traffic between the AP and client and appears unaffected by the Rasp Pi processor loading. If the client is additionally pinging the AP, the ping times are generally steady at around 2-3 ms but the halts show up as ping timeouts for the period mentioned above. If concurrent shell session(s) are run to the Pi's Ethernet port, they are unaffected by the halt occurring to the AP traffic - running normally with 1ms ping times. (note traffic volumes were varied using top at different periods -d ~ 0.1 to 0.01 - if top was run over the AP ssh session, timeouts increased with smaller d, but if run over Ethernet ssh, timeouts were unaffected - to my mind eliminating the effect top had on loading up the processor)
If the wifi dongle is operating in g - mode, the halts are no longer than 5 seconds in duration. In n-mode, the duration of the halt is usually 15-20 secs. With virtually no traffic over the AP-client link, the halt may take 15 - 20 minutes to occur. If the traffic is around 20kB/s, the halt will occur within about 15 minutes. At 60-70 kB/s; 20 sec halts will be occurring every 5-60 seconds apart.
I have tried the same dongle in the Rasp Pi configured as a normal wifi client, and if power saving is switched off, it performs very well. If power saving is left on, I also experience up to 5 sec halts (occasionally) and very erratic ping time - the latter I would expect if the dongle processor has to be woken. However, although power saving is shown as "on" in AP mode, the capability to switch it off appears to be disabled.
The Rasp Pi does have some usb issues; however, this dongle is working well as a wifi client.
I have spent over a week searching the web, forums etc and cannot find an answer to my problem - I am new to Linux. Many Rasp Pi users report it as working well as an AP with a number of dongles; in particular the rt5370, which is also using the same rt2800usb driver, doesn't appear to suffer from these traffic halts.
I have a preference for a high power dongle which unfortunately uses the rt3072 (at least in this case).

I am using the wheezy kernel uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 163135 GMT 2013 armv6l GNU/Linux
However, I have tried a number of earler version without noticing a difference re this issue.


lsmod
[code596dv7uv]
Module Size Used by
8021q 17966 0
garp 6295 1 8021q
stp 1969 1 garp
llc 5440 2 stp,garp
nfnetlink_log 8053 0
nfnetlink 4698 1 nfnetlink_log
snd_bcm2835 15846 0
snd_pcm 77560 1 snd_bcm2835
snd_seq 53329 0
snd_timer 19998 2 snd_pcm,snd_seq
snd_seq_device 6438 1 snd_seq
snd 58447 5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc 5145 1 snd_pcm
arc4 1676 2
rt2800usb 14940 0
rt2800lib 55351 1 rt2800usb
crc_ccitt 1522 1 rt2800lib
rt2x00usb 11215 1 rt2800usb
rt2x00lib 42334 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 273413 3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211 184163 2 mac80211,rt2x00lib
rfkill 18202 2 cfg80211
leds_gpio 2235 0
led_class 3562 2 leds_gpio,rt2x00lib
[/code596dv7uv]

hostapd.conf
[code596dv7uv]
interface=wlan0
#bridge=br0
driver=nl80211
#ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=*******

hw_mode=g
ieee80211n=1
#wmm_enabled=1

channel=5
#macaddr_acl=0
auth_algs=3
#ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=*******
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ht_capab=[HT20][SHORT-GI-20] #[RX-STBC1]

#eapol_key_index_workaround=0

#beacon_int=100 #beacon interval
[/code596dv7uv]

/var/log/syslog

[code596dv7uv]
Feb 19 10:38:43 raspberrypi kernel: [ 2.662376] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
Feb 19 10:38:43 raspberrypi kernel: [ 2.675055] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Feb 19 10:38:43 raspberrypi kernel: [ 2.688867] hub 1-1:1.0: USB hub found
Feb 19 10:38:43 raspberrypi kernel: [ 2.701337] hub 1-1:1.0: 3 ports detected
Feb 19 10:38:43 raspberrypi kernel: [ 2.992213] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
Feb 19 10:38:43 raspberrypi kernel: [ 3.102579] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
Feb 19 10:38:43 raspberrypi kernel: [ 3.115564] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Feb 19 10:38:43 raspberrypi kernel: [ 3.131730] smsc95xx v1.0.4
Feb 19 10:38:43 raspberrypi kernel: [ 3.196810] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:3a:98:74
Feb 19 10:38:43 raspberrypi kernel: [ 3.312258] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
Feb 19 10:38:43 raspberrypi kernel: [ 3.458999] usb 1-1.2: New USB device found, idVendor=148f, idProduct=3072
Feb 19 10:38:43 raspberrypi kernel: [ 3.485574] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 19 10:38:43 raspberrypi kernel: [ 3.512054] usb 1-1.2: Product: 802.11 n WLAN
Feb 19 10:38:43 raspberrypi kernel: [ 3.532076] usb 1-1.2: Manufacturer: Ralink
Feb 19 10:38:43 raspberrypi kernel: [ 3.558835] usb 1-1.2: SerialNumber: 1.0
Feb 19 10:38:43 raspberrypi kernel: [ 5.542859] Registered led device: led0
Feb 19 10:38:43 raspberrypi kernel: [ 6.227446] cfg80211: Calling CRDA to update world regulatory domain
Feb 19 10:38:43 raspberrypi kernel: [ 6.752190] usb 1-1.2: reset high-speed USB device number 4 using dwc_otg
Feb 19 10:38:43 raspberrypi kernel: [ 7.077176] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
Feb 19 10:38:43 raspberrypi kernel: [ 7.078459] Registered led device: rt2800usb-phy0::radio
Feb 19 10:38:43 raspberrypi kernel: [ 7.078586] Registered led device: rt2800usb-phy0::assoc
Feb 19 10:38:43 raspberrypi kernel: [ 7.078701] Registered led device: rt2800usb-phy0::quality
Feb 19 10:38:43 raspberrypi kernel: [ 7.078906] usbcore: registered new interface driver rt2800usb
Feb 19 10:38:43 raspberrypi kernel: [ 8.122129] cfg80211: World regulatory domain updated:
Feb 19 10:38:43 raspberrypi kernel: [ 8.133955] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Feb 19 10:38:43 raspberrypi kernel: [ 8.148669] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Feb 19 10:38:43 raspberrypi kernel: [ 8.162943] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Feb 19 10:38:43 raspberrypi kernel: [ 8.177145] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Feb 19 10:38:43 raspberrypi kernel: [ 8.191582] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Feb 19 10:38:43 raspberrypi kernel: [ 8.207244] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Feb 19 10:38:43 raspberrypi kernel: [ 14.707759] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Feb 19 10:38:43 raspberrypi kernel: [ 15.199590] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Feb 19 10:38:43 raspberrypi kernel: [ 15.988151] bcm2835 ALSA card created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.008851] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.029581] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.052345] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.073502] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.095659] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.109936] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 16.125451] bcm2835 ALSA chip created!
Feb 19 10:38:43 raspberrypi kernel: [ 24.292875] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Feb 19 10:38:43 raspberrypi kernel: [ 24.385914] 8021q: 802.1Q VLAN Support v1.8
Feb 19 10:38:44 raspberrypi dnsmasq[1989]: started, version 2.62 cachesize 150
Feb 19 10:38:44 raspberrypi dnsmasq[1989]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack
Feb 19 10:38:44 raspberrypi dnsmasq-dhcp[1989]: DHCP, IP range 192.168.0.20 -- 192.168.0.150, lease time 12h
Feb 19 10:38:44 raspberrypi dnsmasq[1989]: reading /etc/resolv.conf
Feb 19 10:38:44 raspberrypi dnsmasq[1989]: using nameserver 192.168.1.254#53
Feb 19 10:38:44 raspberrypi dnsmasq[1989]: cleared cache
Feb 19 10:38:45 raspberrypi /usr/sbin/cron[2075]: (CRON) INFO (pidfile fd = 3)
Feb 19 10:38:45 raspberrypi kernel: [ 29.608856] Adding 102396k swap on /var/swap. Priority:-1 extents:1 across:102396k SS
Feb 19 10:38:45 raspberrypi /usr/sbin/cron[2077]: (CRON) STARTUP (fork ok)
Feb 19 10:38:45 raspberrypi /usr/sbin/cron[2077]: (CRON) INFO (Running @reboot jobs)
Feb 19 10:38:46 raspberrypi vnstatd[2138]: vnStat daemon 1.11 started.
Feb 19 10:38:46 raspberrypi vnstatd[2138]: Monitoring: wlan0 eth0 mon.wlan0
Feb 19 10:39:12 raspberrypi ntpdate[1559]: step time server 202.21.137.10 offset 23.680255 sec
Feb 19 10:39:13 raspberrypi ntpd[2158]: ntpd 4.2.6p5@1.2349-o Fri May 18 20:30:57 UTC 2012 (1)
Feb 19 10:39:13 raspberrypi ntpd[2159]: proto: precision = 1.000 usec
Feb 19 10:39:13 raspberrypi ntpd[2159]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Feb 19 10:39:13 raspberrypi ntpd[2159]: Listen normally on 1 lo 127.0.0.1 UDP 123
Feb 19 10:39:13 raspberrypi ntpd[2159]: Listen normally on 2 eth0 192.168.1.75 UDP 123
Feb 19 10:39:13 raspberrypi ntpd[2159]: Listen normally on 3 wlan0 192.168.0.1 UDP 123
Feb 19 10:39:13 raspberrypi ntpd[2159]: peers refreshed
Feb 19 10:39:13 raspberrypi ntpd[2159]: Listening on routing socket on fd #20 for interface updates
Feb 19 10:39:14 raspberrypi ntpd[2159]: restrict: error in address '::' on line 38. Ignoring...
Feb 19 10:39:14 raspberrypi ntpd[2159]: restrict: error in address '::1' on line 42. Ignoring...
Feb 19 10:39:19 raspberrypi ntpdate[2195]: the NTP socket is in use, exiting
Feb 19 10:39:32 raspberrypi hostapd: wlan0: STA 00:21:6a:26:42:7e IEEE 802.11: authenticated
Feb 19 10:39:32 raspberrypi hostapd: wlan0: STA 00:21:6a:26:42:7e IEEE 802.11: associated (aid 1)
Feb 19 10:39:32 raspberrypi hostapd: wlan0: STA 00:21:6a:26:42:7e RADIUS: starting accounting session 5123FEEF-00000000
Feb 19 10:39:32 raspberrypi hostapd: wlan0: STA 00:21:6a:26:42:7e WPA: pairwise key handshake completed (RSN)
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 available DHCP range: 192.168.0.20 -- 192.168.0.150
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 client provides name: D87YJZ1S
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 vendor class: MSFT 5.0
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 DHCPREQUEST(wlan0) 192.168.0.25 00:21:6a:26:42:7e
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 tags: wlan0
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 DHCPACK(wlan0) 192.168.0.25 00:21:6a:26:42:7e D87YJZ1S
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 1:netmask, 15:domain-name, 3:router, 6:dns-server,
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 44:netbios-ns, 46:netbios-nodetype, 47:netbios-scope,
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 31:router-discovery, 33:static-route, 249,
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 43:vendor-encap
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 next server: 192.168.0.1
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 1 option: 53 message-type 5
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 54 server-identifier 192.168.0.1
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 51 lease-time 43200
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 58 T1 21600
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 59 T2 37800
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 1 netmask 255.255.255.0
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 28 broadcast 192.168.0.255
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 6 dns-server 192.168.0.1
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 11 option: 81 FQDN 03:ff:ff:44:38:37:59:4a:5a:31:53
Feb 19 10:39:33 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 3 router 192.168.0.1
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 available DHCP range: 192.168.0.20 -- 192.168.0.150
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 client provides name: D87YJZ1S
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 vendor class: MSFT 5.0
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 DHCPREQUEST(wlan0) 192.168.0.25 00:21:6a:26:42:7e
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 tags: wlan0
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 DHCPACK(wlan0) 192.168.0.25 00:21:6a:26:42:7e D87YJZ1S
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 1:netmask, 15:domain-name, 3:router, 6:dns-server,
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 44:netbios-ns, 46:netbios-nodetype, 47:netbios-scope,
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 31:router-discovery, 33:static-route, 249,
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 requested options: 43:vendor-encap
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 next server: 192.168.0.1
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 1 option: 53 message-type 5
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 54 server-identifier 192.168.0.1
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 51 lease-time 43200
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 58 T1 21600
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 59 T2 37800
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 1 netmask 255.255.255.0
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 28 broadcast 192.168.0.255
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 6 dns-server 192.168.0.1
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 11 option: 81 FQDN 03:ff:ff:44:38:37:59:4a:5a:31:53
Feb 19 10:39:36 raspberrypi dnsmasq-dhcp[1989]: 670566602 sent size: 4 option: 3 router 192.168.0.1
Feb 19 10:40:02 raspberrypi dbus[1991]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Feb 19 10:40:02 raspberrypi dbus[1991]: [system] Activating service name='org.freedesktop.PolicyKit1' (using servicehelper)
Feb 19 10:40:02 raspberrypi polkitd[2279]: started daemon version 0.105 using authority implementation `local' version `0.105'
Feb 19 10:40:02 raspberrypi dbus[1991]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
[/code596dv7uv]

Please note that actual physical dongle is a Digitech computer,High-Power, wireless-N, USB adapter.

I'm concerned that the information I have provide may be a bit vague to attract any serious interest in the problem. Although I am new to Linux, I am prepared to do my part in uncovering the problem, I just need some pointing in the right direction.
Thanks.

***********************************************

Further to the above, in order to isolate the problem further I have obtained a beagleboard-xm and loaded ubuntu server.
uname -a
Linux ivobeagle 3.2.0-23-omap #36-Ubuntu Tue Apr 10 202421 UTC 2012 armv7l armv7l armv7l GNU/Linux
As with the Raspberry Pi, I have loaded hostapd and dnsmasq.
I am using the same /etc/hostapd/hostapd.conf, /etc/default/hostapd, /etc/dnsmasq.conf, /etc/network/interfaces.
I am observing the same behaviour on the beagleboard as I was on the raspberry pi.
I will try it on an x86 host running ubuntu but it does appear that there is a problem with support of the rt3072 chip in AP mode.

*************************************************

I have now tried the above configuration on an X86 host, which appears to work a lot better. The worst case situation with the Raspberry Pi and Beagleboard was with n-mode, HT and WMM enabled coupled with a reasonable link traffic volume 60-70kB/s. I did have 3, four second timeouts in several hours with the X86k, which suggest the problem is still there, but occurs much less frequently and with much less severity.

the x86 host is loaded with
uname -a
Linux ubuntu 3.5.0-25-generic #39-Ubuntu SMP Mon Feb 25 182658 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

lsmod

[code596dv7uv]
Module Size Used by
8021q 24155 0
garp 14425 1 8021q
stp 12977 1 garp
llc 14553 2 garp,stp
arc4 12530 2
coretemp 13401 0
kvm_intel 132760 0
kvm 414071 1 kvm_intel
adt7475 31317 0
hwmon_vid 12784 1 adt7475
parport_pc 32689 0
ppdev 17074 0
lp 17760 0
parport 46346 3 parport_pc,ppdev,lp
bnep 18141 2
rfcomm 46620 0
bluetooth 209249 10 bnep,rfcomm
snd_hda_codec_realtek 78147 1
gpio_ich 13384 0
snd_hda_intel 33492 3
snd_hda_codec 134213 2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 17699 1 snd_hda_codec
rt2800usb 22662 0
snd_pcm 96668 2 snd_hda_intel,snd_hda_codec
rt2800lib 58731 1 rt2800usb
crc_ccitt 12708 1 rt2800lib
rt2x00usb 20665 1 rt2800usb
rt2x00lib 54939 3 rt2800usb,rt2800lib,rt2x00usb
microcode 22804 0
mac80211 540032 3 rt2800lib,rt2x00usb,rt2x00lib
psmouse 95595 0
cfg80211 206797 2 rt2x00lib,mac80211
serio_raw 13216 0
lpc_ich 17062 0
snd_seq_midi 13325 0
snd_rawmidi 30513 1 snd_seq_midi
snd_seq_midi_event 14900 1 snd_seq_midi
snd_seq 61555 2 snd_seq_midi,snd_seq_midi_event
snd_timer 29426 2 snd_pcm,snd_seq
snd_seq_device 14498 3 snd_seq_midi,snd_rawmidi,snd_seq
snd 78921 15 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 15048 1 snd
snd_page_alloc 18485 2 snd_hda_intel,snd_pcm
nouveau 896008 2
ttm 83596 1 nouveau
drm_kms_helper 49113 1 nouveau
joydev 17458 0
i7core_edac 23572 0
mac_hid 13206 0
drm 288721 4 nouveau,ttm,drm_kms_helper
edac_core 52452 3 i7core_edac
i2c_algo_bit 13414 1 nouveau
mxm_wmi 13022 1 nouveau
video 19391 1 nouveau
wmi 19071 2 nouveau,mxm_wmi
hid_generic 12541 0
r8169 61651 0
pata_jmicron 12748 0
usbhid 46987 0
hid 100411 2 hid_generic,usbhid
[/code596dv7uv]

The fact that the dongle performance is vastly improved on the x86 platform, suggests to me that the dongle or its binary are not the problem. I have also tried different distros of Linux and different SOC platforms and the problem persists.
If no one has any input over the next day or so I will try the mailing list.