Re: [PATCHv2 1/2] drivers: net: davinci_mdio: remove busy loop on wait user access
From: Max UvarovDate: Thu, 10 Aug 2017 10:47:46 +0300 > Polling 14 mdio devices on single mdio bus eats 30% of 1Ghz cpu time > due to busy loop in wait(). Add small delay to relax cpu. > > Signed-off-by: Max Uvarov Applied to net-next.
Re: [PATCHv2 1/2] drivers: net: davinci_mdio: remove busy loop on wait user access
On 08/10/2017 02:47 AM, Max Uvarov wrote: Polling 14 mdio devices on single mdio bus eats 30% of 1Ghz cpu time due to busy loop in wait(). Add small delay to relax cpu. Signed-off-by: Max Uvarovyep. cover letter is good to have. Reviewed-by: Grygorii Strashko --- v2: fix spelling in commit description. drivers/net/ethernet/ti/davinci_mdio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index 33df340..611e7cc 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -198,8 +198,10 @@ static inline int wait_for_user_access(struct davinci_mdio_data *data) return 0; reg = __raw_readl(>control); - if ((reg & CONTROL_IDLE) == 0) + if ((reg & CONTROL_IDLE) == 0) { + usleep_range(100, 200); continue; + } /* * An emac soft_reset may have clobbered the mdio controller's -- regards, -grygorii
Re: [PATCHv2 1/2] drivers: net: davinci_mdio: remove busy loop on wait user access
On Thu, Aug 10, 2017 at 10:47:46AM +0300, Max Uvarov wrote: > Polling 14 mdio devices on single mdio bus eats 30% of 1Ghz cpu time > due to busy loop in wait(). Add small delay to relax cpu. Hi Max Please include a cover note when you have multiple patches in a series. With 14 devices, it makes sense to swap to using PHY interrupts if you can. That should prevent the PHY state machine polling the PHYs every second. Reviewed-by: Andrew LunnAndrew
[PATCHv2 1/2] drivers: net: davinci_mdio: remove busy loop on wait user access
Polling 14 mdio devices on single mdio bus eats 30% of 1Ghz cpu time due to busy loop in wait(). Add small delay to relax cpu. Signed-off-by: Max Uvarov--- v2: fix spelling in commit description. drivers/net/ethernet/ti/davinci_mdio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index 33df340..611e7cc 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -198,8 +198,10 @@ static inline int wait_for_user_access(struct davinci_mdio_data *data) return 0; reg = __raw_readl(>control); - if ((reg & CONTROL_IDLE) == 0) + if ((reg & CONTROL_IDLE) == 0) { + usleep_range(100, 200); continue; + } /* * An emac soft_reset may have clobbered the mdio controller's -- 2.5.0