[LEDE-DEV] [PATCH] ag71xx: Reorder ring structs for lower cache trashing.
Rosen Penev
rosenp at gmail.com
Fri Feb 9 20:11:54 PST 2018
On Thu, Feb 1, 2018 at 9:23 AM, Lucian Cristian <luci at createc.ro> wrote:
> 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 {
>
Seems this patch got dropped from patchwork for some reason.
>
> I can confirm that this one gives a nice performance boost !
>
>
> Regards
>
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
More information about the Lede-dev
mailing list