From: Yasushi SHOJI <yashi@atmark-techno.com>
To: Ivo van Doorn <ivdoorn@gmail.com>
Cc: Gertjan van Wingerde <gwingerde@gmail.com>,
helmut.schaa@googlemail.com, hanada@atmark-techno.com,
linux-wireless@vger.kernel.org
Subject: Re: [PATCH 04/23] rt2x00: Make rt2x00_queue_entry_for_each more flexible
Date: Mon, 02 May 2011 22:33:43 +0900 [thread overview]
Message-ID: <87d3k1rzuw.wl@dns1.atmark-techno.com> (raw)
In-Reply-To: <201104301601.15558.IvDoorn@gmail.com>
Hi Ivo,
At Sat, 30 Apr 2011 16:01:14 +0200,
Ivo van Doorn wrote:
>
> I've have a different idea, after a discussion with Helmut, I had changed his
> original patch. But I think below patch should resolve the issue as well.
>
> Yasushi, can you please test this patch.
We've tried your patch and the result is not as good as the original.
before we go into our test description, let me correct and add to my
previous comment:
- CPU consumption was not an issue (sorry for wrong info. my bad)
-- but network throughput performance is bad
- USB controller on the CPU is not fast
-- max throughput for USB memory read is about 50 Mbps on our test
-- max client mode transfer rate is about 20 Mbps (at best)
all test is done on our Freescale i.MX25[1] ARM based board,
Armadillo-440[2], a440 for short, and using HostAP[3] and netpipe[4].
As you can see, we are using the board as an access point instead of
client mode. this might have some impacts.
here is the summary of the test result we did:
|ping pc -> a440 |netpipe
-----------+-------------------+--------------------------------------
original |a few ms |starts at a few Mbps to 18 Mbps
flexible |fast for small, |error and exit on large packets
|not work for large |
ours |a few ms |starts at a few Mbps to 18 Mbps (same as orig)
ivo's |tens of ms |works but less than 1.0 Mbps throughput
here "original" means 7dab73b37[5], just before flexible patch.
flexible is 10e11568ca[6]. ours is the patch I sent in the previous
mail[7], ivo's is s/true/false/ on rt2x00usb.c[8].
detailed test result is at the end of this email.
BTW, we are in the big holiday week[10] right now. so please bear
with us. we might not reply promptly.
[1]:http://www.freescale.com/webapp/sps/site/overview.jsp?code=IMX25_FAMILY
[2]:http://www.atmark-techno.com/products/armadillo/a440/specs
[3]:http://hostap.epitest.fi/
[4]:http://www.scl.ameslab.gov/netpipe/
[5]:http://git.kernel.org/?p=linux/kernel/git/ivd/rt2x00.git;a=commit;h=7dab73b37f5e8885cb73efd25e73861f9b4f0246
[6]:http://git.kernel.org/?p=linux/kernel/git/ivd/rt2x00.git;a=commit;h=10e11568ca8b8a15f7478f6a4ceebabcbdba1018
[7]:http://article.gmane.org/gmane.linux.kernel.wireless.general/68843
[8]:http://article.gmane.org/gmane.linux.kernel.wireless.general/68987
[10]:http://en.wikipedia.org/wiki/Golden_Week_%28Japan%29
-------- detailed test results --------
flexible
========
right after windows client connected to the board with WPA2(AES)
----------------------------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 61 128 128 61 61 61
0 0x00000001 49 64 1 50 49 49
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
right after four pings from windows client
------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 226 128 128 98 98 98
0 0x00000001 201 64 0 9 9 9
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
NetPIPE
-------
$ NPtcp -h 192.168.40.101
0: 1 bytes 3 times --> 0.01 Mbps in 814.67 usec
1: 2 bytes 122 times --> 0.00 Mbps in 10791.37 usec
2: 3 bytes 9 times --> 0.03 Mbps in 729.17 usec
3: 4 bytes 91 times -->
(stopped...)
flexible + ivo patch
====================
right after windows client connected to the board with WPA2(AES)
----------------------------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 83 128 128 83 83 83
0 0x00000001 57 64 1 58 57 57
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
right after four pings from windows client
------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 173 128 128 45 45 45
0 0x00000001 148 64 1 21 20 20
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
NetPIPE
-------
$ NPtcp -h 192.168.40.101
0: 1 bytes 3 times --> 0.00 Mbps in 83008.00 usec
1: 2 bytes 3 times --> 0.00 Mbps in 33693.33 usec
2: 3 bytes 3 times --> 0.00 Mbps in 240411.83 usec
3: 4 bytes 3 times --> 0.00 Mbps in 47299.17 usec
4: 6 bytes 3 times --> 0.00 Mbps in 179131.50 usec
5: 8 bytes 3 times --> 0.04 Mbps in 1588.50 usec
6: 12 bytes 39 times --> 0.02 Mbps in 3682.92 usec
7: 13 bytes 11 times --> 0.14 Mbps in 719.14 usec
8: 16 bytes 64 times --> 0.02 Mbps in 7699.98 usec
9: 19 bytes 7 times --> 0.20 Mbps in 735.07 usec
10: 21 bytes 85 times --> 0.02 Mbps in 6706.57 usec
11: 24 bytes 9 times --> 0.00 Mbps in 141140.44 usec
12: 27 bytes 3 times --> 0.00 Mbps in 166763.17 usec
13: 29 bytes 3 times --> 0.29 Mbps in 764.00 usec
14: 32 bytes 63 times --> 0.32 Mbps in 772.13 usec
15: 35 bytes 68 times --> 0.06 Mbps in 4222.35 usec
16: 45 bytes 13 times --> 0.48 Mbps in 721.85 usec
17: 48 bytes 92 times --> 0.03 Mbps in 11973.77 usec
18: 51 bytes 5 times --> 0.51 Mbps in 764.70 usec
19: 61 bytes 51 times --> 0.01 Mbps in 42452.69 usec
20: 64 bytes 3 times --> 0.57 Mbps in 852.17 usec
21: 67 bytes 60 times --> 0.02 Mbps in 20637.03 usec
22: 93 bytes 3 times --> 0.00 Mbps in 1000327.83 usec
23: 96 bytes 3 times --> 0.00 Mbps in 961784.50 usec
24: 99 bytes 3 times --> 0.00 Mbps in 497735.83 usec
25: 125 bytes 3 times --> 0.00 Mbps in 832843.50 usec
26: 128 bytes 3 times --> 0.00 Mbps in 204765.50 usec
27: 131 bytes 3 times --> 0.01 Mbps in 126846.00 usec
28: 189 bytes 3 times --> 0.05 Mbps in 27758.17 usec
29: 192 bytes 3 times --> 1.79 Mbps in 817.83 usec
30: 195 bytes 82 times -->
(stopped...)
flexible + ours
===============
right after windows client connected to the board with WPA2(AES)
----------------------------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 55 128 128 55 55 55
0 0x00000001 41 64 0 41 41 41
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
right after four pings from windows client
------------------------------------------
$ cat /sys/kernel/debug/ieee80211/phy0/rt2800usb/queue/queue
qid flags count limit length index dma done done
14 0x00000001 154 128 128 26 26 26
0 0x00000001 140 64 0 12 12 12
1 0x00000001 0 64 0 0 0 0
2 0x00000001 0 64 0 0 0 0
3 0x00000001 0 64 0 0 0 0
16 0x00000001 0 8 0 0 0 0
NetPIPE
-------
$ NPtcp -h 192.168.40.101
0: 1 bytes 120 times --> 0.01 Mbps in 750.40 usec
1: 2 bytes 133 times --> 0.02 Mbps in 748.81 usec
2: 3 bytes 133 times --> 0.03 Mbps in 728.36 usec
3: 4 bytes 91 times --> 0.04 Mbps in 754.80 usec
4: 6 bytes 99 times --> 0.06 Mbps in 723.39 usec
5: 8 bytes 69 times --> 0.08 Mbps in 737.79 usec
6: 12 bytes 84 times --> 0.12 Mbps in 740.74 usec
7: 13 bytes 56 times --> 0.13 Mbps in 752.49 usec
8: 16 bytes 61 times --> 0.17 Mbps in 700.23 usec
9: 19 bytes 80 times --> 0.19 Mbps in 751.41 usec
10: 21 bytes 84 times --> 0.22 Mbps in 739.90 usec
11: 24 bytes 90 times --> 0.25 Mbps in 742.70 usec
12: 27 bytes 95 times --> 0.28 Mbps in 728.53 usec
13: 29 bytes 61 times --> 0.30 Mbps in 736.39 usec
14: 32 bytes 65 times --> 0.34 Mbps in 718.62 usec
15: 35 bytes 73 times --> 0.35 Mbps in 757.30 usec
16: 45 bytes 75 times --> 0.46 Mbps in 740.49 usec
17: 48 bytes 90 times --> 0.51 Mbps in 722.49 usec
18: 51 bytes 95 times --> 0.53 Mbps in 736.47 usec
19: 61 bytes 53 times --> 0.62 Mbps in 748.58 usec
20: 64 bytes 65 times --> 0.65 Mbps in 754.20 usec
21: 67 bytes 68 times --> 0.70 Mbps in 732.01 usec
22: 93 bytes 73 times --> 0.95 Mbps in 747.98 usec
23: 96 bytes 89 times --> 0.98 Mbps in 745.40 usec
24: 99 bytes 90 times --> 1.02 Mbps in 743.47 usec
25: 125 bytes 48 times --> 1.30 Mbps in 734.55 usec
26: 128 bytes 67 times --> 1.31 Mbps in 744.35 usec
27: 131 bytes 68 times --> 1.34 Mbps in 745.50 usec
28: 189 bytes 69 times --> 1.86 Mbps in 775.32 usec
29: 192 bytes 85 times --> 1.85 Mbps in 792.12 usec
30: 195 bytes 84 times --> 1.92 Mbps in 774.57 usec
31: 253 bytes 45 times --> 2.41 Mbps in 802.03 usec
32: 256 bytes 62 times --> 2.48 Mbps in 788.34 usec
33: 259 bytes 63 times --> 2.48 Mbps in 795.95 usec
34: 381 bytes 64 times --> 3.64 Mbps in 798.36 usec
35: 384 bytes 83 times --> 3.67 Mbps in 797.61 usec
36: 387 bytes 83 times --> 3.67 Mbps in 804.17 usec
37: 509 bytes 42 times --> 4.49 Mbps in 865.31 usec
38: 512 bytes 57 times --> 4.57 Mbps in 854.59 usec
39: 515 bytes 58 times --> 4.58 Mbps in 857.14 usec
40: 765 bytes 58 times --> 6.61 Mbps in 883.34 usec
41: 768 bytes 75 times --> 6.77 Mbps in 865.93 usec
42: 771 bytes 77 times --> 6.62 Mbps in 888.43 usec
43: 1021 bytes 37 times --> 8.30 Mbps in 939.04 usec
44: 1024 bytes 53 times --> 8.17 Mbps in 955.88 usec
45: 1027 bytes 52 times --> 8.06 Mbps in 972.20 usec
46: 1533 bytes 51 times --> 7.66 Mbps in 1525.97 usec
47: 1536 bytes 43 times --> 7.46 Mbps in 1570.44 usec
48: 1539 bytes 42 times --> 7.60 Mbps in 1545.51 usec
49: 2045 bytes 21 times --> 10.09 Mbps in 1546.31 usec
50: 2048 bytes 32 times --> 9.75 Mbps in 1601.77 usec
51: 2051 bytes 31 times --> 9.83 Mbps in 1592.16 usec
52: 3069 bytes 31 times --> 12.37 Mbps in 1892.11 usec
53: 3072 bytes 35 times --> 12.31 Mbps in 1904.36 usec
54: 3075 bytes 35 times --> 12.02 Mbps in 1952.34 usec
55: 4093 bytes 17 times --> 15.79 Mbps in 1977.85 usec
56: 4096 bytes 25 times --> 15.37 Mbps in 2032.76 usec
57: 4099 bytes 24 times --> 15.10 Mbps in 2070.98 usec
58: 6141 bytes 24 times --> 13.74 Mbps in 3410.75 usec
59: 6144 bytes 19 times --> 13.72 Mbps in 3417.03 usec
60: 6147 bytes 19 times --> 13.80 Mbps in 3397.32 usec
61: 8189 bytes 9 times --> 15.29 Mbps in 4086.61 usec
62: 8192 bytes 12 times --> 14.93 Mbps in 4185.71 usec
63: 8195 bytes 11 times --> 14.99 Mbps in 4170.91 usec
64: 12285 bytes 11 times --> 15.38 Mbps in 6095.45 usec
65: 12288 bytes 10 times --> 16.12 Mbps in 5814.15 usec
66: 12291 bytes 11 times --> 16.20 Mbps in 5790.18 usec
67: 16381 bytes 5 times --> 16.05 Mbps in 7787.10 usec
68: 16384 bytes 6 times --> 15.27 Mbps in 8187.83 usec
69: 16387 bytes 6 times --> 16.26 Mbps in 7686.83 usec
70: 24573 bytes 6 times --> 16.59 Mbps in 11301.75 usec
71: 24576 bytes 5 times --> 17.07 Mbps in 10982.60 usec
72: 24579 bytes 6 times --> 17.46 Mbps in 10737.75 usec
73: 32765 bytes 3 times --> 17.40 Mbps in 14369.67 usec
74: 32768 bytes 3 times --> 17.83 Mbps in 14019.67 usec
75: 32771 bytes 3 times --> 17.34 Mbps in 14418.17 usec
76: 49149 bytes 3 times --> 17.16 Mbps in 21856.33 usec
77: 49152 bytes 3 times --> 17.06 Mbps in 21987.50 usec
78: 49155 bytes 3 times --> 17.27 Mbps in 21715.00 usec
79: 65533 bytes 3 times --> 17.92 Mbps in 27894.50 usec
80: 65536 bytes 3 times --> 17.52 Mbps in 28542.00 usec
81: 65539 bytes 3 times --> 17.55 Mbps in 28490.00 usec
82: 98301 bytes 3 times --> 17.94 Mbps in 41802.83 usec
83: 98304 bytes 3 times --> 16.13 Mbps in 46505.17 usec
84: 98307 bytes 3 times --> 17.44 Mbps in 43001.00 usec
85: 131069 bytes 3 times --> 17.74 Mbps in 56360.50 usec
86: 131072 bytes 3 times --> 18.14 Mbps in 55120.33 usec
87: 131075 bytes 3 times --> 18.08 Mbps in 55323.17 usec
88: 196605 bytes 3 times --> 17.87 Mbps in 83919.67 usec
89: 196608 bytes 3 times --> 16.90 Mbps in 88738.67 usec
90: 196611 bytes 3 times --> 17.73 Mbps in 84627.00 usec
91: 262141 bytes 3 times --> 17.84 Mbps in 112088.50 usec
92: 262144 bytes 3 times --> 17.58 Mbps in 113748.67 usec
93: 262147 bytes 3 times --> 17.88 Mbps in 111867.67 usec
94: 393213 bytes 3 times --> 17.27 Mbps in 173754.83 usec
95: 393216 bytes 3 times --> 17.55 Mbps in 170984.50 usec
96: 393219 bytes 3 times --> 17.86 Mbps in 167983.67 usec
97: 524285 bytes 3 times --> 17.47 Mbps in 228930.00 usec
98: 524288 bytes 3 times --> 16.85 Mbps in 237405.00 usec
99: 524291 bytes 3 times --> 16.75 Mbps in 238756.33 usec
100: 786429 bytes 3 times --> 17.27 Mbps in 347394.50 usec
101: 786432 bytes 3 times --> 17.11 Mbps in 350626.17 usec
102: 786435 bytes 3 times --> 16.84 Mbps in 356215.50 usec
103: 1048573 bytes 3 times --> 17.57 Mbps in 455389.83 usec
104: 1048576 bytes 3 times --> 17.07 Mbps in 468556.83 usec
105: 1048579 bytes 3 times --> 17.47 Mbps in 457837.50 usec
106: 1572861 bytes 3 times --> 16.99 Mbps in 706165.00 usec
107: 1572864 bytes 3 times --> 17.47 Mbps in 686900.50 usec
108: 1572867 bytes 3 times --> 17.91 Mbps in 670021.00 usec
109: 2097149 bytes 3 times --> 16.74 Mbps in 955773.67 usec
110: 2097152 bytes 3 times --> 16.97 Mbps in 942824.67 usec
111: 2097155 bytes 3 times --> 17.30 Mbps in 925022.67 usec
112: 3145725 bytes 3 times --> 17.39 Mbps in 1379715.33 usec
113: 3145728 bytes 3 times --> 17.06 Mbps in 1406779.83 usec
114: 3145731 bytes 3 times --> 17.30 Mbps in 1387511.17 usec
(done successfully)
--
Yashi
next prev parent reply other threads:[~2011-05-02 13:33 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 13:26 [PATCH 01/23] Enable WLAN LED on Ralink SoC (rt305x) devices Ivo van Doorn
2011-04-18 13:26 ` [PATCH 02/23] rt2x00: Fix stuck queue in tx failure case Ivo van Doorn
2011-04-18 13:27 ` [PATCH 03/23] rt2x00: Split rt2x00dev->flags Ivo van Doorn
2011-04-18 13:27 ` [PATCH 04/23] rt2x00: Make rt2x00_queue_entry_for_each more flexible Ivo van Doorn
2011-04-18 13:28 ` [PATCH 05/23] rt2x00: Use correct TBTT_SYNC config in AP mode Ivo van Doorn
2011-04-18 13:28 ` [PATCH 06/23] rt2x00: Update TX_SW_CFG2 init value Ivo van Doorn
2011-04-18 13:28 ` [PATCH 07/23] rt2x00: Use TXOP_HTTXOP for beacons Ivo van Doorn
2011-04-18 13:29 ` [PATCH 08/23] rt2800usb: read TX_STA_FIFO asynchronously Ivo van Doorn
2011-04-18 13:29 ` [PATCH 09/23] rt2x00: fix queue timeout checks Ivo van Doorn
2011-04-18 13:30 ` [PATCH 10/23] rt2800usb: handle TX status timeouts Ivo van Doorn
2011-04-18 13:30 ` [PATCH 11/23] rt2800usb: add timer to handle TX_STA_FIFO Ivo van Doorn
2011-04-18 13:31 ` [PATCH 12/23] Decrease association time for USB devices Ivo van Doorn
2011-04-18 13:31 ` [PATCH 13/23] rt2x00: Always inline rt2x00pci_enable_interrupt Ivo van Doorn
2011-04-18 13:31 ` [PATCH 14/23] rt2x00: Linksys WUSB600N rev2 is a RT3572 device Ivo van Doorn
2011-04-18 13:32 ` [PATCH 15/23] rt2x00: Allow dynamic addition of PCI/USB IDs Ivo van Doorn
2011-04-18 13:32 ` [PATCH 16/23] rt2x00: Add USB IDs Ivo van Doorn
2011-04-18 13:33 ` [PATCH 17/23] rt2x00: RT33xx device support is no longer experimental Ivo van Doorn
2011-04-18 13:33 ` [PATCH 18/23] rt2x00: Enable support for RT53xx PCI devices by default Ivo van Doorn
2011-04-18 13:33 ` [PATCH 19/23] rt2x00: Merge rt2x00ht.c contents in other files Ivo van Doorn
2011-04-18 13:34 ` [PATCH 20/23] rt2x00: Optimize register access in rt2800pci Ivo van Doorn
2011-04-18 13:34 ` [PATCH 21/23] rt2x00: Optimize register access in rt2800usb Ivo van Doorn
2011-04-18 13:34 ` [PATCH 22/23] rt2x00: Implement get_ringparam callback function Ivo van Doorn
2011-04-18 13:35 ` [PATCH 23/23] rt2x00: Implement get_antenna and set_antenna callback functions Ivo van Doorn
2011-04-18 13:56 ` [PATCH 21/23] rt2x00: Optimize register access in rt2800usb Rafał Miłecki
2011-04-18 14:06 ` Ivo Van Doorn
2011-04-18 14:14 ` Rafał Miłecki
2011-04-18 14:48 ` Helmut Schaa
2011-04-18 15:02 ` Rafał Miłecki
2011-04-28 2:55 ` [PATCH 04/23] rt2x00: Make rt2x00_queue_entry_for_each more flexible Yasushi SHOJI
2011-04-28 2:55 ` Yasushi SHOJI
2011-04-28 18:55 ` Ivo Van Doorn
2011-04-29 6:06 ` Gertjan van Wingerde
2011-04-30 14:01 ` Ivo van Doorn
2011-05-02 13:33 ` Yasushi SHOJI [this message]
2011-05-02 19:24 ` Ivo van Doorn
2011-05-09 8:08 ` Yasushi SHOJI
2011-05-09 8:50 ` Ivo Van Doorn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d3k1rzuw.wl@dns1.atmark-techno.com \
--to=yashi@atmark-techno.com \
--cc=gwingerde@gmail.com \
--cc=hanada@atmark-techno.com \
--cc=helmut.schaa@googlemail.com \
--cc=ivdoorn@gmail.com \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).