Hi Carl, Thanks a lot for your reply. On Fri, Nov 13, 2020 at 9:37 AM Carl Yin(殷张成) <carl.yin@xxxxxxxxxxx> wrote: > For openwrt device, the ' Performance bottleneck ' usually is NAT, not usbnet. > As I remember: MT7621 have dual core, and support Hardware acceleration of 'NAT'. Yes, you are right in that NAT can have a large effect on performance, especially when you start being CPU-limited. However,when using perf to profile the kernel during my tests, no function related to netfilter/conntrack appeared very high on the list. I would also expect the modem to at least reach the performance of the dongle, with offloading being switched off. However, there could be some detail I missed. > It seems r8152 is a pure Ethernet card, does it can use the ' Hardware acceleration ' I will do some experiments with hardware NAT, thanks for reminding me of this feature. However, my experience with it is not very good, so I would ideally like to find a solution that does not rely on this feature. > And do you use 'mpstat -P ALL 2' to monitor each core's loading? > Generally USB interrupt occurs at cpu0, and the 'NAT' is also on cpu0. > You can try to use "echo 2 > /sys/class/net/wwan0/ /queues/rx-0/rps_cpus " to move NAT to cpu1. I use htop to monitor the load on each core. rx_cpus is set to "e" to balance traffic better across all cores, locking rx to one core gave a much worse result (something like 170 Mbit/s). > X55 max support 31KB, there are benefit from 16KB -> 31KB. > Maybe your X55's FW version is old, only generates 16KB data. > And URB size is 32KB, but X55 only output 16KB, so maybe there are not enough number of URBs? I had the same theory and asked my FAE if a more recent firmware is available for my device (some of my tests were done with Quectel RM500Q). I do not know what is the trigger for the device to generate 32KB URBs is? The fastest network I have access to gives a speed of 700-800 Mbit/s, but I do not know if that is enough? Kristian