Actually, looking back at your results, it seems like your disk is mounted as a USB2 device rather than a USB3 device - that would be in line with the 25 MB/s results. Can you see in syslog that your disk gets mounted by xhci and not by ehci?
If it's mounted by ehci, make sure you do not have USB 3.0 Interference reduction enabled - this basically downgrades the USB3 port to USB2. Asus leaves this enabled by default because they think (rightly) that wireless performance/stability out of the box was more important than USB performance.
Ah-ha ! this sounds interesting. xhci is indeed the module loaded however it may be operating in low power or low compatibility mode or something. I'm no expert of the USB stack but noted a few interesting annotations in syslog:
extracts from xhci logging
Code:
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: xHCI Host Controller
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: new USB bus registered, assigned bus number 1
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: irq 112, io mem 0x18023000
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: Failed to enable MSI-X
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: failed to allocate MSI entry
Jan 1 00:00:13 kernel: [xhci-hub] usb2mode:[0]
Jan 1 00:00:13 kernel: usb 1-1: new SuperSpeed USB device using xhci_hcd and address 2
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: WARN: short transfer on control ep
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: WARN: short transfer on control ep
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: WARN: short transfer on control ep
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: WARN: short transfer on control ep
Jan 1 00:00:13 kernel: xhci_hcd 0000:00:0b.0: WARN no SS endpoint bMaxBurst
Jan 1 00:00:14 kernel: xhci_hcd 0000:00:0b.0: WARN: Stalled endpoint
Jan 1 00:00:14 kernel: xhci_hcd 0000:00:0b.0: WARN: Stalled endpoint
Jan 1 00:00:15 kernel: xhci_hcd 0000:00:0b.0: WARN: Stalled endpoint
admin@ROUTER:/tmp/home/root#
a few extracts from usb logging
Code:
admin@ROUTER:/tmp/home/root# cat /tmp/syslog.log | grep usb
Jan 1 00:00:12 syslog: module ledtrig-usbdev not found in modules.dep
Jan 1 00:00:12 syslog: module leds-usb not fogund in modules.dep
Jan 1 00:00:13 kernel: usbcore: registered new interface driver usbfs
Jan 1 00:00:13 kernel: usbcore: registered new interface driver hub
Jan 1 00:00:13 kernel: usbcore: registered new device driver usb
Jan 1 00:00:13 kernel: usbcore: registered new interface driver usb-storage
Jan 1 00:00:13 kernel: usb usb1: No SuperSpeed endpoint companion for config 1 interface 0 altsetting 0 ep 129: using minimum values
Jan 1 00:00:13 kernel: [xhci-hub] usb2mode:[0]
Jan 1 00:00:13 kernel: usb 1-1: new SuperSpeed USB device using xhci_hcd and address 2
Jan 1 00:00:13 kernel: usbcore: registered new interface driver usblp
Jan 1 00:00:13 kernel: scsi0 : usb-storage 1-1:1.0
Jan 1 00:00:13 kernel: usbcore: registered new interface driver asix
Jan 1 00:00:13 kernel: usbcore: registered new interface driver cdc_ether
Jan 1 00:00:13 kernel: usbcore: registered new interface driver rndis_host
Jan 1 00:00:13 kernel: usbcore: registered new interface driver cdc_ncm
admin@ROUTER:/tmp/home/root#
"usb2mode:[0]" .... so port power being set - reduced power / reduced speed ??? not sure, no expert.
"Jan 1 00:00:13 kernel: usb 1-1: new SuperSpeed USB device using xhci_hcd and address 2" - does suggest USB3 attached to 2nd port though?
Code:
admin@ROUTER:/tmp/home/root# cat /tmp/usb.log
[usb_dbg: asus_usb_interface] (1-1:1.0): action=add.
[usb_dbg: asus_usb_interface] (1-1): action=add.
[usb_dbg: asus_usb_interface] (1-1): Fail to get usb node.
[usb_dbg: asus_usb_interface] (1-1:1.0): Not modem interface.
[usb_dbg: asus_sg] (sg0): action=add.
[usb_dbg: init_3g_param] 3G: Auto setting.
[usb_dbg: asus_sg] (sg0): insmod cdrom!
[usb_dbg: asus_sd] (sda): action=add.
[usb_dbg: get_usb_node_by_device] (lp0): Fail to get link: /sys/class/usb/lp0/device.
[usb_dbg: get_usb_node_by_device] (lp1): Fail to get link: /sys/class/usb/lp1/device.
[usb_dbg: get_usb_node_by_device] (lp2): Fail to get link: /sys/class/usb/lp2/device.
[usb_dbg: get_usb_node_by_device] (lp3): Fail to get link: /sys/class/usb/lp3/device.
[usb_dbg: get_usb_node_by_device] (lp4): Fail to get link: /sys/class/usb/lp4/device.
[usb_dbg: get_usb_node_by_device] (lp5): Fail to get link: /sys/class/usb/lp5/device.
[usb_dbg: get_usb_node_by_device] (lp6): Fail to get link: /sys/class/usb/lp6/device.
[usb_dbg: get_usb_node_by_device] (lp7): Fail to get link: /sys/class/usb/lp7/device.
[usb_dbg: get_usb_node_by_device] (lp8): Fail to get link: /sys/class/usb/lp8/device.
[usb_dbg: get_usb_node_by_device] (lp9): Fail to get link: /sys/class/usb/lp9/device.
[usb_dbg: asus_sd] (sda1): action=add.
[usb_dbg: get_usb_node_by_device] (lp0): Fail to get link: /sys/class/usb/lp0/device.
[usb_dbg: get_usb_node_by_device] (lp1): Fail to get link: /sys/class/usb/lp1/device.
[usb_dbg: get_usb_node_by_device] (lp2): Fail to get link: /sys/class/usb/lp2/device.
[usb_dbg: get_usb_node_by_device] (lp3): Fail to get link: /sys/class/usb/lp3/device.
[usb_dbg: get_usb_node_by_device] (lp4): Fail to get link: /sys/class/usb/lp4/device.
[usb_dbg: get_usb_node_by_device] (lp5): Fail to get link: /sys/class/usb/lp5/device.
[usb_dbg: get_usb_node_by_device] (lp6): Fail to get link: /sys/class/usb/lp6/device.
[usb_dbg: get_usb_node_by_device] (lp7): Fail to get link: /sys/class/usb/lp7/device.
[usb_dbg: get_usb_node_by_device] (lp8): Fail to get link: /sys/class/usb/lp8/device.
[usb_dbg: get_usb_node_by_device] (lp9): Fail to get link: /sys/class/usb/lp9/device.
[usb_dbg: asus_sg] (sg0): Success!
[usb_dbg: asus_sd] (sda1): Success!
[usb_dbg: asus_sd] (sda): Success!
admin@ROUTER:/tmp/home/root#
ideas? - I agree, there is something amiss with the USB hard drive. My net is fine , throughput is fine, machines are fine, the router is clearly capable of more throughput to uSB devices, so the problem must lie with the USB drive I'm using , but what/why?
how do I get logging to "xhci_dbg" as per xhci_hub.c without of course setting CCFLAGS at compile time with source which I do not have. ?? Is there a way on this router to invoke debugging ?
also, the kernel is quite old: "2.6.36.4brcmarm #1 SMP PREEMPT Sun Apr 13 13:59:58 EDT 2014 armv7l GNU/Linux"
Can we get a newer kernel Merlin with latest drivers. v2.6, sooooo old.
EDIT: Merlin, I did the following which has lifted transfer to USB via ftp (where I'm getting my metrics from and consisten wth those reported by iftop)...
nvram set usb_ftpsuper=1
nvram set usb_ftpsuper_x=1
nvram set proftpd_writeen=1
nvram set w1l_distance=200 (was 3000!)
nvram commit && reboot
squeezed another 1MBps - but still not USB3 speed.
EDIT:
nvram set wl1_txstreams=2 (was=0) and rxstreams , has now bumped up speed to 25MBps
SOLVED!!!! wl1_streams was not set correctly and not visible in your / ausus or DDW RT f/w.
All the wifi clients in the home are now transfering data at around 25MBps on a 802.11n LAN. Soon to be 802.11ac ! But 20MBps is around 200mbps which on 802.11n is fine as a mean throughput
THIS IS MORE LIKE IT - now i see how Asus manage to "downgrade" the AC56U when in reality its performance is on par with the 68U (or can be with some nvram tweaks)
nvram set wl0_rxstreams=2
nvram set wl0_txstreams=2
nvram set wl1_rxstreams=2
nvram set wl1_txstreams=2