SDIO Performance once again
Dominik S. Herwald
lists at dsh-elektronik.de
Mon Feb 9 11:13:26 EST 2009
Dan Williams schrieb:
> On Sun, 2009-02-08 at 17:56 +0100, Dominik S. Herwald wrote:
>> right now I am testing Marvell 8686 based Modules connected to the SDIO
>> Controller of a Blackfin BF548.
>> Basically the libertas driver works just fine and stable.
>> But the Performance... :-/
> My first thoughts on this are lock contention; there's multiple levels
> of locking going on here between the SDIO stack, libertas core, and
> libertas interface drivers. The original Marvell drivers for the 8388
> had *no* locking whatsoever, which was clearly wrong, but there may well
> be optimizations we can make inside libertas as well. So here's what
> would help: find the hotpaths (probably RX/TX, command, and event
> handlers in the if_* files), and see if you can find out how long some
> of the lock grabs block for. There's some mutex debug stuff you can
> define during the kernel build to figure out exactly what threads are
> waiting on a lock which might be useful.
did you see my other posting with the Kernel Timer Tick?
In the meantime I found out that my Problem seems to be related to the
Kernel timer tick of 4ms
(see my second posting on this list with the 4ms frames)...
On Blackfin the Timer tick is set to 250Hz (4ms) by default. If I set it
to 1000Hz, performance rises up to 11.2MBit/s performance!
I am still searching for the root of this Problem as setting
the timer to 1000Hz is no real solution...
So it may be that somewhere is a timer/thread or timeout based on "jiffies"
or otherwise related to the timer setting of the Controller...
But so far I could not find what exactly causes this behaviour...
More information about the libertas-dev