View previous topic :: View next topic |
Author |
Message |
gw Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/5373596244572ac4ac3e08.png)
Joined: 03 Dec 2006 Posts: 215
|
Posted: Sat Aug 02, 2008 1:32 am Post subject: SOLVED: iwl3945 performance |
|
|
Setup:
card: Intel Corporation PRO/Wireless 3945ABG
drivers:- A) ipw3945-1.2.2 with kernel linux-2.6.26-gentoo
- B) iwl3945 with newest git wireless-testing kernel 2.6.27-rc1-wl
You get the latter (B) by:
Code: | git-clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git |
This gives you the complete kernel snapshot of the main linux wifi developper (John Linville).
Compile and install this wireless testing kernel; if you get an error while trying to rebuild the nvidia module, act according to this:
Quote: | http://www.nvnews.net/vbulletin/showthread.php?p=1730295 |
Given the grotesque way to apply the patch, it is kind of a hack; but it works.
Here are some relevant kernel configs:
Code: | zcat /proc/config.gz| egrep -i "iwl|mac8|wirel"
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_MAC80211=m
CONFIG_MAC80211_RC_PID=y
CONFIG_MAC80211_RC_DEFAULT_PID=y
CONFIG_MAC80211_RC_DEFAULT="pid"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUG_MENU is not set
# Wireless LAN
# CONFIG_MAC80211_HWSIM is not set
CONFIG_IWLWIFI=m
CONFIG_IWLCORE=m
# CONFIG_IWLWIFI_LEDS is not set
CONFIG_IWLWIFI_RFKILL=y
# CONFIG_IWLWIFI_DEBUG is not set
# CONFIG_IWLAGN is not set
CONFIG_IWL3945=m
CONFIG_IWL3945_RFKILL=y
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
CONFIG_IWL3945_LEDS=y
# CONFIG_IWL3945_DEBUG is not set
# CONFIG_IPWIRELESS is not set
|
Testing:
I transfer data between two computers on the same LAN (and room), laptop and desktop, laptop has the wifi card: laptop <---wireless---> wlan router <---wired---> desktop.
I used two programs for checking the throughput of each driver
- net-analyzer/netperf-2.4.4
- simple scp
I give the client-server based netperf (netserver on the corresponding machine) a 100 seconds run. With scp I transferred a file sized 730787830 bytes.
Results:
A) Using the old deprecated driver ipw3945
Receiving data:
Quote: | root@desktop:~> netperf -l 100 -H laptop
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to laptop (192.168.1.2) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 100.05 18.31 |
And:
Quote: | time scp film.avi me@laptop:/tmp
Password:
film.avi 100% 697MB 1.8MB/s 06:23
scp film.avi me@laptop:/tmp 17,66s user 6,25s system 6% cpu 6:37,12 |
Sending data:
Quote: | root@laptop:~> netperf -l 100 -H desktop
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to desktop (192.168.1.1) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 100.66 23.11 |
And:
Quote: | time scp film.avi me@desktop:/tmp
Password:
film.avi 100% 697MB 2.7MB/s 04:18
scp film.avi me@desktop:/tmp 21,39s user 12,61s system 12% cpu 4:23,02 total |
Brandnew iwl3945 driver and 2.6.27 wireless-testing kernel:
Receiving data:
Quote: | root@desktop:~> netperf -l 100 -H laptop
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to laptop (192.168.1.2) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 100.05 18.00 |
And:
Quote: | time scp film.avi me@laptop:/tmp
Password:
film.avi 100% 697MB 2.1MB/s 05:40
scp film.avi me@laptop:/tmp 18,37s user 6,07s system 7% cpu 5:45,59 total |
Sending data:
Quote: | root@laptop:~> netperf -l 100 -H desktop
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to linux (192.168.14.1) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 102.35 9.34 |
And:
Quote: | time scp film.avi me@desktop:/tmp [1:28]
Password:
scp film.avi me@desktop:/tmp 15,24s user 12,20s system 4% cpu 10:23,71 total |
To sum it up:
When receiving data, both drivers give roughly the same (mediocre) performance, about 18Mbit/s, which is considerably below the 25Mbit/sec that should be possible.
When sending data the picture ist completely different:
- the old ipw3945 has a very good performance of 23Mbit/s
- the new iwl3945 completely breaks down and gives only 10Mbit/s
Could you provide comparable numbers, preferably with netperf.
And how come that performance differs so dramatically between sending/receiving data? How can I check if this is due to driver, wlan hardware or whatever?
Thanks
gw
Last edited by gw on Sun Apr 12, 2009 8:31 am; edited 2 times in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
gw Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/5373596244572ac4ac3e08.png)
Joined: 03 Dec 2006 Posts: 215
|
Posted: Sun Apr 12, 2009 8:29 am Post subject: |
|
|
Now after a very long time and several kernels on:
Code: |
uname -a
Linux linux 2.6.29-gentoo #1 SMP |
the wlan performance problem nearly vanished, I almost get the transfer rates of the old ipw3945 driver, especially when sending data: from 2.6.26 on it came down to about 1MB/s but now -- with 2.6.29 and probably the new firmware! -- it is miraculously up again at ca 2.5MB/s! I didn't change anything on my router configuration so it has to be something with the driver/firmware/kernel.
gw |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|