Search Linux Wireless

Re: [RFC] p54spi: don't DMA onto the stack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Thursday 17 November 2011 00:15:42 Michael Büsch wrote:
> > On Thu, 17 Nov 2011 00:12:03 +0100
> > Christian Lamparter <chunkeey@xxxxxxxxxxxxxx> wrote:
> > > BTW: I always wondered if it would make sense to have a
> > > cached rx skb ready in p54spi_rx(). This way we don't
> > > have to do DMA onto the stack [which is really ugly and
> > > possibly illegal] and might even get a better rx
> > > performance. I could write the code but as you know I don't
> > > have the hardware to test it.
> > 
> > I'll test it, if you can come up with a patch.
> ---
> [RFC] p54spi: don't DMA onto the stack
> 
> DMA transfers should not be done onto the kernel stack.

What about p54spi_read32, it does the same thing?

I have tested this patch, it works, no measurable rx speed boost though
(~6.1Mbit/sec in iperf as either server or client).

[...snip...]

> -	if (len <= READAHEAD_SZ) {
> -		memcpy(skb_put(skb, len), rx_head + 1, len);
> +	if (len <= READAHEAD) {
> +		skb_put(skb, len);
>  	} else {
> -		memcpy(skb_put(skb, READAHEAD_SZ), rx_head + 1, READAHEAD_SZ);
> +		skb_put(skb, READAHEAD);
>  		p54spi_spi_read(priv, SPI_ADRS_DMA_DATA,
> -				skb_put(skb, len - READAHEAD_SZ),
> -				len - READAHEAD_SZ);
> +				skb_put(skb, len - READAHEAD),
> +				len - READAHEAD);
>  	}

I have also tested this patch without this (READAHEAD_SZ) kludge.
It appears to work now.

Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux