[Gta04-owner] Small update to 3.7-gta04 kernel: faster wifi.
Andreas Kemnade
andreas at kemnade.info
Tue Oct 22 00:59:01 CEST 2013
Hi,
On Mon, 21 Oct 2013 11:21:53 +1100
NeilBrown <neilb at suse.de> wrote:
> On Sun, 20 Oct 2013 10:19:20 +0200 Andreas Kemnade <andreas at kemnade.info>
> wrote:
>
> > Hi,
> >
> > On Sat, 19 Oct 2013 11:13:15 +0200
> > "Neal H. Walfield" <neal at walfield.org> wrote:
> >
> > > At Fri, 18 Oct 2013 20:44:22 +1100,
> > > NeilBrown wrote:
> > > > I've just pushed out a small update to 3.7-gta04.
> > > >
> > > > This update adds support for the IRQ line from SDIO cards, such as the wifi
> > > > in the gta04.
> > > > This allows the wifi to go faster.
> > > > With polling (the old behaviour) I get about 1Mb/sec
> > > > With Interupts enabled and polling disabled I get about 4Mb/sec.
> > > > If I have interrupts *and* polling (which admittedly is a strange
> > > > config to even try) I get 5Mb/sec on my 800MHz board, and 6Mb/sec on
> > > > my 1GHz board.
> > > >
> > > > So the code currently does both. It is a bit of a hack (and not the only
> > > > hack) but it works OK for now.
> > >
> > > I don't know how these two config options interact. For what it is
> > > worth, polling often has lower overhead than processing an interrupt
> > > if there is data waiting. The tradeoff is that if there is no data
> > > waiting, then polling slightly potentially increases latency and burns
> > > a significant amount of CPU cycles. Thus, some device drivers will
> > > switch to polling mode when it appears that a lot of data will arrive
> > > and revert to interrupts when the throughput dips below some
> > > threshold. Perhaps this is what the two config options are enabling.
> > >
> > Hmm, in that 2.6.32-hw-validation kernel, the interrupt mode works
> > alone with highspeed (no polling). Somehow some interrupts are lost now,
> > so I did not disable the polling.
>
> Do you know what speed you can get with 2.6.32-hw? I tried but my current
> user-space doesn't seem to work properly with such and old kernel (which
> surprised me).
>
Hmm, i got more than 1MByte/s with quite bad reception.
> [...]
> I wonder if the libertas driver might be overly simplistic. My understanding
> is that most network cards can buffer a number of packets (in a ring) so you
> download several packets, it starts sending and you get an interrupt when the
> ring is half full at which point you down load some more packets.
> But the libertas code seems to just do one packet per interrupt which
> suggests there is no transmit ring.
> I might be completely misunderstanding the code, but I wouldn't be surprised
> if there were room to improve the driver code.
>
I quickly looked into the ENC28J60 datasheet (Ethernet chip with SPI
interface). Even that simple chip seems to be able to handle multiple
packets. I still wonder why there is so much difference in power
consumption in idle mode between GTA02 and GTA04 wifi. I guess there is
also some room for improvement in power management.
And then there is also the question whether we should move to the
libertas_tf driver. Less things hidden in binary blobs and the ability
to be an ap.
Greetings
Andreas Kemnade
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20131022/036f4d95/attachment.bin>
More information about the Gta04-owner
mailing list