diff options
author | Thibaut VARENE <hacks@slashdirt.org> | 2017-09-12 23:22:37 +0200 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2017-09-13 08:07:54 +0200 |
commit | eff3549c5883a9abc5dbff00c084cabbcfdf4437 (patch) | |
tree | 4de1960519ea37204b73f45aa9c97de4361dd45c /target/linux/generic/files/drivers/net/phy/ar8327.c | |
parent | fd84ecda7d3bfebb4237110b8efe2ab2713ea8e1 (diff) | |
download | mtk-20170518-eff3549c5883a9abc5dbff00c084cabbcfdf4437.zip mtk-20170518-eff3549c5883a9abc5dbff00c084cabbcfdf4437.tar.gz mtk-20170518-eff3549c5883a9abc5dbff00c084cabbcfdf4437.tar.bz2 |
generic: drop support for get_port_stats() on ar8xxx
The implementation is not efficient on ar8xxx switches. It triggers high
CPU load and degrades device performance.
The high CPU load has been traced down to the ar8xxx_reg_wait() call in
ar8xxx_mib_op(), which has to usleep_range() till the MIB busy flag set
by the request to update the MIB counter is cleared.
This commit removes the get_port_stats() code introduced in 4d8a66d and
leaves a note for future hacker's beware.
Fixes: FS#1004
Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/ar8327.c')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/ar8327.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8327.c b/target/linux/generic/files/drivers/net/phy/ar8327.c index bae9744..6ebd2e8 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8327.c +++ b/target/linux/generic/files/drivers/net/phy/ar8327.c @@ -1411,7 +1411,16 @@ static const struct switch_dev_ops ar8327_sw_ops = { .apply_config = ar8327_sw_hw_apply, .reset_switch = ar8xxx_sw_reset_switch, .get_port_link = ar8xxx_sw_get_port_link, +/* The following op is disabled as it hogs the CPU and degrades performance. + An implementation has been attempted in 4d8a66d but reading MIB data is slow + on ar8xxx switches. + + The high CPU load has been traced down to the ar8xxx_reg_wait() call in + ar8xxx_mib_op(), which has to usleep_range() till the MIB busy flag set by + the request to update the MIB counter is cleared. */ +#if 0 .get_port_stats = ar8xxx_sw_get_port_stats, +#endif }; const struct ar8xxx_chip ar8327_chip = { |