[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