]>
Commit | Line | Data |
---|---|---|
67125b02 HP |
1 | /* |
2 | * Copyright 2013 Cisco Systems, Inc. All rights reserved. | |
3 | * | |
4 | * This program is free software; you may redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License as published by | |
6 | * the Free Software Foundation; version 2 of the License. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
9 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
10 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
11 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |
12 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
15 | * SOFTWARE. | |
16 | */ | |
17 | #ifndef _FNIC_STATS_H_ | |
18 | #define _FNIC_STATS_H_ | |
43caa03f SK |
19 | |
20 | struct stats_timestamps { | |
22807aa8 AB |
21 | struct timespec64 last_reset_time; |
22 | struct timespec64 last_read_time; | |
43caa03f SK |
23 | }; |
24 | ||
67125b02 HP |
25 | struct io_path_stats { |
26 | atomic64_t active_ios; | |
27 | atomic64_t max_active_ios; | |
28 | atomic64_t io_completions; | |
29 | atomic64_t io_failures; | |
30 | atomic64_t ioreq_null; | |
31 | atomic64_t alloc_failures; | |
32 | atomic64_t sc_null; | |
33 | atomic64_t io_not_found; | |
34 | atomic64_t num_ios; | |
445d2960 SK |
35 | atomic64_t io_btw_0_to_10_msec; |
36 | atomic64_t io_btw_10_to_100_msec; | |
37 | atomic64_t io_btw_100_to_500_msec; | |
38 | atomic64_t io_btw_500_to_5000_msec; | |
39 | atomic64_t io_btw_5000_to_10000_msec; | |
40 | atomic64_t io_btw_10000_to_30000_msec; | |
41 | atomic64_t io_greater_than_30000_msec; | |
42 | atomic64_t current_max_io_time; | |
67125b02 HP |
43 | }; |
44 | ||
45 | struct abort_stats { | |
46 | atomic64_t aborts; | |
47 | atomic64_t abort_failures; | |
48 | atomic64_t abort_drv_timeouts; | |
49 | atomic64_t abort_fw_timeouts; | |
50 | atomic64_t abort_io_not_found; | |
445d2960 SK |
51 | atomic64_t abort_issued_btw_0_to_6_sec; |
52 | atomic64_t abort_issued_btw_6_to_20_sec; | |
53 | atomic64_t abort_issued_btw_20_to_30_sec; | |
54 | atomic64_t abort_issued_btw_30_to_40_sec; | |
55 | atomic64_t abort_issued_btw_40_to_50_sec; | |
56 | atomic64_t abort_issued_btw_50_to_60_sec; | |
57 | atomic64_t abort_issued_greater_than_60_sec; | |
67125b02 HP |
58 | }; |
59 | ||
60 | struct terminate_stats { | |
61 | atomic64_t terminates; | |
62 | atomic64_t max_terminates; | |
63 | atomic64_t terminate_drv_timeouts; | |
64 | atomic64_t terminate_fw_timeouts; | |
65 | atomic64_t terminate_io_not_found; | |
66 | atomic64_t terminate_failures; | |
67 | }; | |
68 | ||
69 | struct reset_stats { | |
70 | atomic64_t device_resets; | |
71 | atomic64_t device_reset_failures; | |
72 | atomic64_t device_reset_aborts; | |
73 | atomic64_t device_reset_timeouts; | |
74 | atomic64_t device_reset_terminates; | |
75 | atomic64_t fw_resets; | |
76 | atomic64_t fw_reset_completions; | |
77 | atomic64_t fw_reset_failures; | |
78 | atomic64_t fnic_resets; | |
79 | atomic64_t fnic_reset_completions; | |
80 | atomic64_t fnic_reset_failures; | |
81 | }; | |
82 | ||
83 | struct fw_stats { | |
84 | atomic64_t active_fw_reqs; | |
85 | atomic64_t max_fw_reqs; | |
86 | atomic64_t fw_out_of_resources; | |
87 | atomic64_t io_fw_errs; | |
88 | }; | |
89 | ||
90 | struct vlan_stats { | |
91 | atomic64_t vlan_disc_reqs; | |
92 | atomic64_t resp_withno_vlanID; | |
93 | atomic64_t sol_expiry_count; | |
94 | atomic64_t flogi_rejects; | |
95 | }; | |
96 | ||
97 | struct misc_stats { | |
98 | u64 last_isr_time; | |
99 | u64 last_ack_time; | |
100 | atomic64_t isr_count; | |
101 | atomic64_t max_cq_entries; | |
102 | atomic64_t ack_index_out_of_range; | |
103 | atomic64_t data_count_mismatch; | |
104 | atomic64_t fcpio_timeout; | |
105 | atomic64_t fcpio_aborted; | |
106 | atomic64_t sgl_invalid; | |
107 | atomic64_t mss_invalid; | |
108 | atomic64_t abts_cpwq_alloc_failures; | |
109 | atomic64_t devrst_cpwq_alloc_failures; | |
110 | atomic64_t io_cpwq_alloc_failures; | |
111 | atomic64_t no_icmnd_itmf_cmpls; | |
39fcbbc0 | 112 | atomic64_t check_condition; |
67125b02 HP |
113 | atomic64_t queue_fulls; |
114 | atomic64_t rport_not_ready; | |
115 | atomic64_t frame_errors; | |
116 | }; | |
117 | ||
118 | struct fnic_stats { | |
43caa03f | 119 | struct stats_timestamps stats_timestamps; |
67125b02 HP |
120 | struct io_path_stats io_stats; |
121 | struct abort_stats abts_stats; | |
122 | struct terminate_stats term_stats; | |
123 | struct reset_stats reset_stats; | |
124 | struct fw_stats fw_stats; | |
125 | struct vlan_stats vlan_stats; | |
126 | struct misc_stats misc_stats; | |
127 | }; | |
128 | ||
129 | struct stats_debug_info { | |
130 | char *debug_buffer; | |
131 | void *i_private; | |
132 | int buf_size; | |
133 | int buffer_len; | |
134 | }; | |
135 | ||
136 | int fnic_get_stats_data(struct stats_debug_info *, struct fnic_stats *); | |
137 | int fnic_stats_debugfs_init(struct fnic *); | |
138 | void fnic_stats_debugfs_remove(struct fnic *); | |
139 | #endif /* _FNIC_STATS_H_ */ |