Message ID | 99425adad58a8ed133edc1a2b5ec8fec70e56e36.1512994559.git.igor.russkikh@aquantia.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: aquantia: Atlantic driver 12/2017 updates | expand |
> --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c > +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c > @@ -344,6 +344,13 @@ static int hw_atl_a0_hw_init(struct aq_hw_s *self, > hw_atl_a0_hw_rss_set(self, &aq_nic_cfg->aq_rss); > hw_atl_a0_hw_rss_hash_set(self, &aq_nic_cfg->aq_rss); > > + /* Read initial hardware counters > + * and reset current in-driver statistics > + */ > + hw_atl_utils_update_stats(self); > + memset(&PHAL_ATLANTIC_A0->curr_stats, 0, > + sizeof(PHAL_ATLANTIC_A0->curr_stats)); > + > err = aq_hw_err_from_flags(self); > if (err < 0) > goto err_exit; Hi Igor It looks like this is called on pm state change? Does this mean that resume will zero the statistics? That is probably not what you want. You should probably only clear the statics in the probe function. Andrew
>> --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c >> +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c >> @@ -344,6 +344,13 @@ static int hw_atl_a0_hw_init(struct aq_hw_s *self, >> hw_atl_a0_hw_rss_set(self, &aq_nic_cfg->aq_rss); >> hw_atl_a0_hw_rss_hash_set(self, &aq_nic_cfg->aq_rss); >> >> + /* Read initial hardware counters >> + * and reset current in-driver statistics >> + */ >> + hw_atl_utils_update_stats(self); >> + memset(&PHAL_ATLANTIC_A0->curr_stats, 0, >> + sizeof(PHAL_ATLANTIC_A0->curr_stats)); >> + >> err = aq_hw_err_from_flags(self); >> if (err < 0) >> goto err_exit; > Hi Igor > > It looks like this is called on pm state change? Does this mean that > resume will zero the statistics? That is probably not what you want. > > You should probably only clear the statics in the probe function. > Hi Andrew, thanks for the review. It seems you are right and this'll reset stats on PM state. I'll revalidate this and come back with updated patch. BR, Igor
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c index b0abd18..331e7b8 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c @@ -344,6 +344,13 @@ static int hw_atl_a0_hw_init(struct aq_hw_s *self, hw_atl_a0_hw_rss_set(self, &aq_nic_cfg->aq_rss); hw_atl_a0_hw_rss_hash_set(self, &aq_nic_cfg->aq_rss); + /* Read initial hardware counters + * and reset current in-driver statistics + */ + hw_atl_utils_update_stats(self); + memset(&PHAL_ATLANTIC_A0->curr_stats, 0, + sizeof(PHAL_ATLANTIC_A0->curr_stats)); + err = aq_hw_err_from_flags(self); if (err < 0) goto err_exit; diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c index 36fddb1..1137034 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c @@ -397,6 +397,13 @@ static int hw_atl_b0_hw_init(struct aq_hw_s *self, */ aq_hw_write_reg(self, tx_dma_total_req_limit_adr, 24); + /* Read initial hardware counters + * and reset current in-driver statistics + */ + hw_atl_utils_update_stats(self); + memset(&PHAL_ATLANTIC_B0->curr_stats, 0, + sizeof(PHAL_ATLANTIC_B0->curr_stats)); + err = aq_hw_err_from_flags(self); if (err < 0) goto err_exit;
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com> --- drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 7 +++++++ drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 7 +++++++ 2 files changed, 14 insertions(+)