Lines Matching refs:port_counter

13 static int __counter_set_mode(struct rdma_port_counter *port_counter,  in __counter_set_mode()  argument
20 if (port_counter->num_counters) in __counter_set_mode()
24 port_counter->mode.mode = new_mode; in __counter_set_mode()
25 port_counter->mode.mask = new_mask; in __counter_set_mode()
46 struct rdma_port_counter *port_counter; in rdma_counter_set_auto_mode() local
50 port_counter = &dev->port_data[port].port_counter; in rdma_counter_set_auto_mode()
51 if (!port_counter->hstats) in rdma_counter_set_auto_mode()
54 mutex_lock(&port_counter->lock); in rdma_counter_set_auto_mode()
58 mode = (port_counter->num_counters) ? RDMA_COUNTER_MODE_MANUAL : in rdma_counter_set_auto_mode()
61 if (port_counter->mode.mode == mode && in rdma_counter_set_auto_mode()
62 port_counter->mode.mask == mask) { in rdma_counter_set_auto_mode()
67 ret = __counter_set_mode(port_counter, mode, mask); in rdma_counter_set_auto_mode()
70 mutex_unlock(&port_counter->lock); in rdma_counter_set_auto_mode()
113 struct rdma_port_counter *port_counter; in alloc_and_bind() local
132 port_counter = &dev->port_data[port].port_counter; in alloc_and_bind()
133 mutex_lock(&port_counter->lock); in alloc_and_bind()
136 ret = __counter_set_mode(port_counter, RDMA_COUNTER_MODE_MANUAL, in alloc_and_bind()
139 mutex_unlock(&port_counter->lock); in alloc_and_bind()
144 auto_mode_init_counter(counter, qp, port_counter->mode.mask); in alloc_and_bind()
148 mutex_unlock(&port_counter->lock); in alloc_and_bind()
152 port_counter->num_counters++; in alloc_and_bind()
153 mutex_unlock(&port_counter->lock); in alloc_and_bind()
177 struct rdma_port_counter *port_counter; in rdma_counter_free() local
179 port_counter = &counter->device->port_data[counter->port].port_counter; in rdma_counter_free()
180 mutex_lock(&port_counter->lock); in rdma_counter_free()
181 port_counter->num_counters--; in rdma_counter_free()
182 if (!port_counter->num_counters && in rdma_counter_free()
183 (port_counter->mode.mode == RDMA_COUNTER_MODE_MANUAL)) in rdma_counter_free()
184 __counter_set_mode(port_counter, RDMA_COUNTER_MODE_NONE, 0); in rdma_counter_free()
186 mutex_unlock(&port_counter->lock); in rdma_counter_free()
227 struct rdma_port_counter *port_counter; in counter_history_stat_update() local
230 port_counter = &dev->port_data[counter->port].port_counter; in counter_history_stat_update()
231 if (!port_counter->hstats) in counter_history_stat_update()
237 port_counter->hstats->value[i] += counter->stats->value[i]; in counter_history_stat_update()
249 struct rdma_port_counter *port_counter; in rdma_get_counter_auto_mode() local
256 port_counter = &dev->port_data[port].port_counter; in rdma_get_counter_auto_mode()
264 if (auto_mode_match(qp, counter, port_counter->mode.mask)) in rdma_get_counter_auto_mode()
293 struct rdma_port_counter *port_counter; in rdma_counter_bind_qp_auto() local
304 port_counter = &dev->port_data[port].port_counter; in rdma_counter_bind_qp_auto()
305 if (port_counter->mode.mode != RDMA_COUNTER_MODE_AUTO) in rdma_counter_bind_qp_auto()
399 struct rdma_port_counter *port_counter; in rdma_counter_get_hwstat_value() local
402 port_counter = &dev->port_data[port].port_counter; in rdma_counter_get_hwstat_value()
403 if (!port_counter->hstats) in rdma_counter_get_hwstat_value()
407 sum += port_counter->hstats->value[index]; in rdma_counter_get_hwstat_value()
455 struct rdma_port_counter *port_counter; in rdma_counter_bind_qpn() local
460 port_counter = &dev->port_data[port].port_counter; in rdma_counter_bind_qpn()
461 if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO) in rdma_counter_bind_qpn()
505 struct rdma_port_counter *port_counter; in rdma_counter_bind_qpn_alloc() local
513 port_counter = &dev->port_data[port].port_counter; in rdma_counter_bind_qpn_alloc()
514 if (!port_counter->hstats) in rdma_counter_bind_qpn_alloc()
517 if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO) in rdma_counter_bind_qpn_alloc()
552 struct rdma_port_counter *port_counter; in rdma_counter_unbind_qpn() local
568 port_counter = &dev->port_data[port].port_counter; in rdma_counter_unbind_qpn()
570 port_counter->mode.mode != RDMA_COUNTER_MODE_MANUAL) { in rdma_counter_unbind_qpn()
586 struct rdma_port_counter *port_counter; in rdma_counter_get_mode() local
588 port_counter = &dev->port_data[port].port_counter; in rdma_counter_get_mode()
589 *mode = port_counter->mode.mode; in rdma_counter_get_mode()
590 *mask = port_counter->mode.mask; in rdma_counter_get_mode()
597 struct rdma_port_counter *port_counter; in rdma_counter_init() local
604 port_counter = &dev->port_data[port].port_counter; in rdma_counter_init()
605 port_counter->mode.mode = RDMA_COUNTER_MODE_NONE; in rdma_counter_init()
606 mutex_init(&port_counter->lock); in rdma_counter_init()
611 port_counter->hstats = dev->ops.alloc_hw_port_stats(dev, port); in rdma_counter_init()
612 if (!port_counter->hstats) in rdma_counter_init()
620 port_counter = &dev->port_data[port].port_counter; in rdma_counter_init()
621 kfree(port_counter->hstats); in rdma_counter_init()
622 port_counter->hstats = NULL; in rdma_counter_init()
623 mutex_destroy(&port_counter->lock); in rdma_counter_init()
629 struct rdma_port_counter *port_counter; in rdma_counter_release() local
633 port_counter = &dev->port_data[port].port_counter; in rdma_counter_release()
634 kfree(port_counter->hstats); in rdma_counter_release()
635 mutex_destroy(&port_counter->lock); in rdma_counter_release()