[LEDE-DEV] [PATCH] ag71xx: Reorder ring structs for lower cache trashing.
Rosen Penev
rosenp at gmail.com
Tue Jan 30 08:14:06 PST 2018
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 {
--
2.7.4
More information about the Lede-dev
mailing list