diff options
author | Jing Huang <huangj@brocade.com> | 2010-07-08 22:48:49 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:04:07 -0400 |
commit | b85d045ee866011df535565bf12d684e8e5b7a9d (patch) | |
tree | b8f7d73d92d7aaf659b3eedcc417ff7614c22316 /drivers/scsi/bfa/bfa_port.c | |
parent | 15b64a835def4c784c6e62ad762677f5cb56eba2 (diff) |
[SCSI] bfa: statistics and typo fix
- Added time stamp for fcport stats reset
- Added new fileds to the statistics data structures.
- Typo removal and minor cleanup.
Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/bfa/bfa_port.c')
-rw-r--r-- | drivers/scsi/bfa/bfa_port.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/drivers/scsi/bfa/bfa_port.c b/drivers/scsi/bfa/bfa_port.c index cab19028361a..6773e2282ddc 100644 --- a/drivers/scsi/bfa/bfa_port.c +++ b/drivers/scsi/bfa/bfa_port.c | |||
@@ -102,9 +102,14 @@ bfa_port_get_stats_isr(struct bfa_port_s *port, bfa_status_t status) | |||
102 | port->stats_busy = BFA_FALSE; | 102 | port->stats_busy = BFA_FALSE; |
103 | 103 | ||
104 | if (status == BFA_STATUS_OK) { | 104 | if (status == BFA_STATUS_OK) { |
105 | struct bfa_timeval_s tv; | ||
106 | |||
105 | memcpy(port->stats, port->stats_dma.kva, | 107 | memcpy(port->stats, port->stats_dma.kva, |
106 | sizeof(union bfa_pport_stats_u)); | 108 | sizeof(union bfa_pport_stats_u)); |
107 | bfa_port_stats_swap(port, port->stats); | 109 | bfa_port_stats_swap(port, port->stats); |
110 | |||
111 | bfa_os_gettimeofday(&tv); | ||
112 | port->stats->fc.secs_reset = tv.tv_sec - port->stats_reset_time; | ||
108 | } | 113 | } |
109 | 114 | ||
110 | if (port->stats_cbfn) { | 115 | if (port->stats_cbfn) { |
@@ -125,9 +130,17 @@ bfa_port_get_stats_isr(struct bfa_port_s *port, bfa_status_t status) | |||
125 | static void | 130 | static void |
126 | bfa_port_clear_stats_isr(struct bfa_port_s *port, bfa_status_t status) | 131 | bfa_port_clear_stats_isr(struct bfa_port_s *port, bfa_status_t status) |
127 | { | 132 | { |
133 | struct bfa_timeval_s tv; | ||
134 | |||
128 | port->stats_status = status; | 135 | port->stats_status = status; |
129 | port->stats_busy = BFA_FALSE; | 136 | port->stats_busy = BFA_FALSE; |
130 | 137 | ||
138 | /** | ||
139 | * re-initialize time stamp for stats reset | ||
140 | */ | ||
141 | bfa_os_gettimeofday(&tv); | ||
142 | port->stats_reset_time = tv.tv_sec; | ||
143 | |||
131 | if (port->stats_cbfn) { | 144 | if (port->stats_cbfn) { |
132 | port->stats_cbfn(port->stats_cbarg, status); | 145 | port->stats_cbfn(port->stats_cbarg, status); |
133 | port->stats_cbfn = NULL; | 146 | port->stats_cbfn = NULL; |
@@ -428,6 +441,8 @@ void | |||
428 | bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc, void *dev, | 441 | bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc, void *dev, |
429 | struct bfa_trc_mod_s *trcmod, struct bfa_log_mod_s *logmod) | 442 | struct bfa_trc_mod_s *trcmod, struct bfa_log_mod_s *logmod) |
430 | { | 443 | { |
444 | struct bfa_timeval_s tv; | ||
445 | |||
431 | bfa_assert(port); | 446 | bfa_assert(port); |
432 | 447 | ||
433 | port->dev = dev; | 448 | port->dev = dev; |
@@ -435,13 +450,21 @@ bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc, void *dev, | |||
435 | port->trcmod = trcmod; | 450 | port->trcmod = trcmod; |
436 | port->logmod = logmod; | 451 | port->logmod = logmod; |
437 | 452 | ||
438 | port->stats_busy = port->endis_pending = BFA_FALSE; | 453 | port->stats_busy = BFA_FALSE; |
439 | port->stats_cbfn = port->endis_cbfn = NULL; | 454 | port->endis_pending = BFA_FALSE; |
455 | port->stats_cbfn = NULL; | ||
456 | port->endis_cbfn = NULL; | ||
440 | 457 | ||
441 | bfa_ioc_mbox_regisr(port->ioc, BFI_MC_PORT, bfa_port_isr, port); | 458 | bfa_ioc_mbox_regisr(port->ioc, BFI_MC_PORT, bfa_port_isr, port); |
442 | bfa_ioc_hbfail_init(&port->hbfail, bfa_port_hbfail, port); | 459 | bfa_ioc_hbfail_init(&port->hbfail, bfa_port_hbfail, port); |
443 | bfa_ioc_hbfail_register(port->ioc, &port->hbfail); | 460 | bfa_ioc_hbfail_register(port->ioc, &port->hbfail); |
444 | 461 | ||
462 | /** | ||
463 | * initialize time stamp for stats reset | ||
464 | */ | ||
465 | bfa_os_gettimeofday(&tv); | ||
466 | port->stats_reset_time = tv.tv_sec; | ||
467 | |||
445 | bfa_trc(port, 0); | 468 | bfa_trc(port, 0); |
446 | } | 469 | } |
447 | 470 | ||