PDA

View Full Version : WiFi performace


brontide
2008-08-13, 22:02
There is at least on n810 project that I have not worked on because the performance of the unit on WiFi is just *that bad* considering what it should be capable of.

Right now using

wget http://host/file -O /dev/null

as the basis for testing and I can get 750kB/s down, some reports claim up to 1mB/s using netperf. This is 1/10'th the theoretical limit of 802.11g.

I have tried many different tweaks and they all top out at a very anemic 750kB/s, with many good networks topping out at only 500kB/s.

some of the things I have tried

Changing to performance governor
tweaking sysctl
changing power saving settings
using ssh
downloading to mmc
different AP's


I know it's not the network as other WiFi devices easily dwarf it in terms of performance. I'm not asking for 50MB/s I would be happy with it being able to push 3+MB/s over the interface. At the maximum speed of 750kB/s it would take 30+ minutes to push 1GB vs no more than 6 minutes over USB. To update a 6GB music library it would take 3+ hours over WiFi and no more than 36 minutes over USB.

A little more perspective is that my wife's iPod nano will easily upload 6-7GB of music in a few minutes.

fragos
2008-08-14, 01:52
This may be wrong but I was under the impression that the N810 was 802.11b. I would wonder if the available speed represents a compromise in battery consumption. Faster almost always takes more power.

Edit: I stand corrected the Wikipedia says b/g.

ace
2008-08-14, 02:28
I know it's not the network as other WiFi devices easily dwarf it in terms of performance. I'm not asking for 50MB/s I would be happy with it being able to push 3+MB/s over the interface.How fast are your other 802.11g devices? I usually see under 2MBps on my laptop.

brontide
2008-08-14, 02:36
How fast are your other 802.11g devices? I usually see under 2MBps on my laptop.

I can easily push 5MB/s over a quiet 802.11g network without breaking a sweat. This is assuming a tcp based protocol that is almost 100% one way. Chattier protocols quickly diminish the speed.

fanoush
2008-08-14, 06:26
I think there is thread here about 'overclocked' wi-fi driver by Serge and you can find his reports also in maemo-developers and cx3110x-devel at garage.maemo.org
(thread WLAN Horrible Roaming Performance (N800, OS2008), Software or Hardware Problem ?) Not sure now but the speed was over 1MB/s then. This is partly due to suboptimal code in cx3110x driver and slow SPI bus used for talking to the chip (raising SPI bus clock helps).

TA-t3
2008-08-14, 11:28
Usually you won't get more than some 22 Mbit/s actual throughput over 802.11.g, except when running some vendor-specific optimized setup (e.g. d-link router + d-link adapter, or asus-to-asus).

(wikipedia actually claims just 19 Mbit/s as average throughput: http://en.wikipedia.org/wiki/IEEE_802.11#802.11g)

Divide by 8 to get Mbytes per second.

cvmiller
2008-08-14, 11:40
I can easily push 5MB/s over a quiet 802.11g network without breaking a sweat. This is assuming a tcp based protocol that is almost 100% one way. Chattier protocols quickly diminish the speed.

5MB seems high, so you should consider yourself lucky, I suppose. You must remember that the physical layer limit of 11g is 54Mbit, not 100. And with 802.11, it is expected that one should get half that maximum (802.11 has it's own chattiness).

I have pushed large files over to my N800 via wireless (and scp), but I usually time it so that the amount of time it takes is not a problem (start the transfer just before dinner, for example).

I think you are seeing what pretty much everyone else is, in terms of transfer speed.

Craig...

brontide
2008-08-14, 11:40
2-3MB/s would be a several fold increase and at least within the realm of normalcy. The numbers that I am getting are so fixed it's like I'm running up against some sort of hard limit somewhere.

XTC
2008-08-14, 11:51
I think it's nothing unusuall at all.
Why? In mobile device when You connect subparts it's normal that You don't have full-speed on all channels (SPI for example) - That's not a way of designing battery operated devices. Other factors counts more than that.
Finally - it's not a network switch where it's network performance defines it's usefulness.
You tweak connections to fit devices needs and at this point is browsing the web, listening to streamed music, receiveing an e-mail - so that's what device is design for.

Serge
2008-08-14, 13:43
I think it's nothing unusuall at all.
Why? In mobile device when You connect subparts it's normal that You don't have full-speed on all channels (SPI for example) - That's not a way of designing battery operated devices. Other factors counts more than that.
WLAN chip sleeps most of the time anyway and SPI bus is not always clocked as far as I know. I'm not quite sure that SPI speed affects power consumption much. Quite the opposite may be also true - the faster you download a file over WLAN, the faster WLAN chip can go to sleep and stop consuming energy.

Finally - it's not a network switch where it's network performance defines it's usefulness.
Copying data from/to a device fast is a nice feature. Also network performance may be important for video streaming for those who care about it.

You tweak connections to fit devices needs and at this point is browsing the web, listening to streamed music, receiveing an e-mail - so that's what device is design for.
Yes, but finding more uses for the device is always a good thing. Availability of sources (for the stuff that is open) helps a lot and encourages these improvements.

Serge
2008-08-14, 13:59
I think there is thread here about 'overclocked' wi-fi driver by Serge and you can find his reports also in maemo-developers and cx3110x-devel at garage.maemo.org
(thread WLAN Horrible Roaming Performance (N800, OS2008), Software or Hardware Problem ?) Not sure now but the speed was over 1MB/s then. This is partly due to suboptimal code in cx3110x driver and slow SPI bus used for talking to the chip (raising SPI bus clock helps).
These cx3110x driver performance patches were developed for Nokia 770 (with some more optimizations still possible). But technically it should be possible to have a major WLAN performance improvement for N800/N810 too. Either by trying to change cx3110x driver back to use tasklets as it was used on Nokia 770 and apply the same modifications, or by introducing (similar?) optimizations to the new code.

Nokia 770 users may use them to enjoy much faster WLAN speed. I have been using 21mhz build for a very long time already and it still works quite reliable for me. A link to the post with the precompiled cx3110x driver binaries and some instructions is here: http://www.internettablettalk.com/forums/showpost.php?p=147146&postcount=19

It would be nice to provide an easy way to install a performance tweaked WLAN driver as an alternative to having just N770: installable bugfix for bug #2006 - Memory corruption during WLAN use (http://www.internettablettalk.com/forums/showthread.php?t=11824) only.

brontide
2008-08-14, 14:00
You tweak connections to fit devices needs and at this point is browsing the web, listening to streamed music, receiveing an e-mail - so that's what device is design for.

If that's all it was designed for then why can't I get those design specs? These are serious questions that handicap developers.

The overclocked driver appear to be for the 770, but at 22kHz it was able to achieve 1.3MB/s transfers. Most of the work that went into the drivers were optimizations to prevent busy-waiting and general dumb driver behavior. I have little doubt that much more can be squeezed from the 810 without compromising battery life.

XTC
2008-08-14, 18:39
Yes, You are both right.
User expectations are usually greater than hardwired or simply programmed solution.
I'm writing that from my point and my experience as hardware designer (of mainly battery powered eqipment). If there is ANY compatibility/speed tradeoff compatibility ALWAYS wins the match.
And if you are talking about compatibility You look at the whole device ie. You don't care about wifi driver faster than Your ability of storing/processing data and so on.
I've got Your point but as for g standard - being compatibile doesn't always mean "fulfilin requirements to it's max".

brontide
2008-08-14, 19:29
This is not about compatibility or battery tradeoffs, this is about a crappy implementation of a closed source driver. Saying that I can push 5MB/s on 802.11g does not mean that I'm expecting it on a n810. I'm a little bit more than frustrated at 750kB/s ( on a good day, with specific AP's, during the full moon, juggling chipmunks ) that this device manages to eek out.

The CPU is not the bottleneck, the bus is not the bottleneck, the flash is not the bottleneck, it's the crappy implementation. It's already been surpassed by the 770 with hacked drivers and that's pretty pathetic.

Ricky-Lee
2008-08-14, 19:38
I a number of times a day have to disconnect from a ap an reconnect because the wifi connection on the n800 has gone flakey an will not work any more. It is getting more than a joke now :/

XTC
2008-08-14, 19:46
As I already said - You are right and You can always be frustrated and say it's crappy etc. but it still fits to my explanation.
You seem to live in a dreamworld in which everything has to be OPTIMAL - in reality the time to develop/verify better driver simply cost not virtual money and if there is no a MUST - development would be a waste.
Sad maybe but shockingly popular on the market.

Serge
2008-08-14, 21:11
This is not about compatibility or battery tradeoffs, this is about a crappy implementation of a closed source driver. Saying that I can push 5MB/s on 802.11g does not mean that I'm expecting it on a n810. I'm a little bit more than frustrated at 750kB/s ( on a good day, with specific AP's, during the full moon, juggling chipmunks ) that this device manages to eek out.
The best what I could get with 802.11g was ~3MB/s. Did you get your 5MB/s transfer with some nonstandard "super", "highspeed", "turbo" or any other kind of extension: http://en.wikipedia.org/wiki/Super_G_(wireless_networking) ?

The CPU is not the bottleneck, the bus is not the bottleneck, the flash is not the bottleneck, it's the crappy implementation. It's already been surpassed by the 770 with hacked drivers and that's pretty pathetic.
It's not crappy, it's just "good enough" :) I have to agree with XTC here. Any performance optimizations, especially nontrivial ones increase risk of introducing bugs. And this all means increased cost of development, testing, etc. I did not hear much complains about WLAN performance here in this forum, interest in increasing wifi performance seems to be very low.

A good thing about free software is that anybody can take part in improving features he is interested in. At least part of cx3110x driver is open source and it is the part where performance optimizations need to be added.

Serge
2008-08-14, 21:37
I a number of times a day have to disconnect from a ap an reconnect because the wifi connection on the n800 has gone flakey an will not work any more. It is getting more than a joke now :/
Well, if you want to have your problem fixed, you need to report it providing the relevant details which can help in tracking this bug. A very long, detailed (and somewhat boring for those who already know most of this stuff) explanation why and how this all generally works can be found here: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

Providing this link as an answer caused a lot of flames here http://www.gossamer-threads.com/lists/maemo/users/38777 but I still think that it is an interesting article to read.

A good bugreport can really help to get the problem fixed, and a bugfix can be done not necessarily by Nokia. Like happened with the bug #2006 in OS2006 that was already mentioned in this topic.

For wlan driver, it is interesting to check dmesg log after the problem is spotted. But first make sure that you are running the latest version of firmware on your device, just because something like what you are describing was fixed in diablo.

TA-t3
2008-08-15, 08:42
You can't get 5MB/s on standard, compatible 802.11g. Only in vendor-specific modes (see my posting above: d-link to d-link, asus to asus etc.) However, I wouldn't mind if our NITs could move 2.3MB/s instead of 750KB/s.. my gut feeling is that most of the speed problem will be in the driver, not in the hardware. But that's the problem with closed-source drivers, there's no easy way to confirm one way or another.

Serge
2008-08-15, 12:22
... my gut feeling is that most of the speed problem will be in the driver, not in the hardware. But that's the problem with closed-source drivers, there's no easy way to confirm one way or another.
The relevant part of the wifi driver is open source and hackable. Nobody prevents anyone from trying to solve performance problems. For example, here is a discussion about compiling/modifying the driver to solve some WPA issues: http://www.internettablettalk.com/forums/showthread.php?t=22828

brontide
2008-08-15, 12:29
You can't get 5MB/s on standard, compatible 802.11g.

I'll re-run my tests, but this was between a MacBook Pro and a Linksys WRT54GS ( "speedboost" afaik does not work unless you have a linksys compatible card on both ends )

allnameswereout
2008-08-15, 22:14
Performance is more than download speed.

AFAICT in the case of 802.11a/b/g these are
* Upload speed;
* Signal strength;
* Latency;
* Packetloss;
* Cryptographic features;