[LEDE-DEV] [PATCH] ag71xx: Reorder ring structs for lower cache trashing.

Lucian Cristian luci at createc.ro
Thu Feb 1 09:23:32 PST 2018


On 30.01.2018 18:14, Rosen Penev wrote:
> Based on Qualcomm's upstream code. Reordered a bit different.
>
> iperf3 speed goes from ~279mbps to ~320mbps.
>
> Signed-off-by: Rosen Penev <rosenp at gmail.com>
> ---
>   .../files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h      | 13 ++++++++-----
>   1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
> index a712812..d181240 100644
> --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
> +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
> @@ -106,13 +106,16 @@ struct ag71xx_buf {
>   };
>   
>   struct ag71xx_ring {
> -	struct ag71xx_buf	*buf;
> -	u8			*descs_cpu;
> -	dma_addr_t		descs_dma;
> -	u16			desc_split;
> -	u16			order;
> +	/* "Hot" fields in the data path. */
>   	unsigned int		curr;
>   	unsigned int		dirty;
> +
> +	/* "Cold" fields - not used in the data path. */
> +	struct ag71xx_buf	*buf;
> +	u16			order;
> +	u16			desc_split;
> +	dma_addr_t		descs_dma;
> +	u8			*descs_cpu;
>   };
>   
>   struct ag71xx_mdio {

I can confirm that this one gives a nice performance boost !


Regards




More information about the Lede-dev mailing list