Lines Matching full:adapter
165 int ena_sysctl_allocate_customer_metrics_buffer(struct ena_adapter *adapter) in ena_sysctl_allocate_customer_metrics_buffer() argument
169 adapter->customer_metrics_array = malloc((sizeof(u64) * ENA_CUSTOMER_METRICS_ARRAY_SIZE), in ena_sysctl_allocate_customer_metrics_buffer()
171 if (unlikely(adapter->customer_metrics_array == NULL)) in ena_sysctl_allocate_customer_metrics_buffer()
177 ena_sysctl_add_nodes(struct ena_adapter *adapter) in ena_sysctl_add_nodes() argument
179 struct ena_com_dev *dev = adapter->ena_dev; in ena_sysctl_add_nodes()
182 ena_sysctl_add_customer_metrics(adapter); in ena_sysctl_add_nodes()
184 ena_sysctl_add_eni_metrics(adapter); in ena_sysctl_add_nodes()
186 if (ena_com_get_cap(adapter->ena_dev, ENA_ADMIN_ENA_SRD_INFO)) in ena_sysctl_add_nodes()
187 ena_sysctl_add_srd_info(adapter); in ena_sysctl_add_nodes()
189 ena_sysctl_add_wd(adapter); in ena_sysctl_add_nodes()
190 ena_sysctl_add_stats(adapter); in ena_sysctl_add_nodes()
191 ena_sysctl_add_tuneables(adapter); in ena_sysctl_add_nodes()
192 ena_sysctl_add_irq_affinity(adapter); in ena_sysctl_add_nodes()
194 ena_sysctl_add_rss(adapter); in ena_sysctl_add_nodes()
199 ena_sysctl_add_wd(struct ena_adapter *adapter) in ena_sysctl_add_wd() argument
207 dev = adapter->pdev; in ena_sysctl_add_wd()
215 &adapter->wd_active, 0, "Watchdog is active"); in ena_sysctl_add_wd()
218 CTLFLAG_RWTUN, &adapter->keep_alive_timeout, in ena_sysctl_add_wd()
222 CTLFLAG_RWTUN, &adapter->missing_tx_timeout, in ena_sysctl_add_wd()
226 CTLFLAG_RWTUN, &adapter->missing_tx_max_queues, 0, in ena_sysctl_add_wd()
230 CTLFLAG_RWTUN, &adapter->missing_tx_threshold, 0, in ena_sysctl_add_wd()
235 ena_sysctl_add_stats(struct ena_adapter *adapter) in ena_sysctl_add_stats() argument
261 dev = adapter->pdev; in ena_sysctl_add_stats()
267 tx_ring = adapter->tx_ring; in ena_sysctl_add_stats()
268 rx_ring = adapter->rx_ring; in ena_sysctl_add_stats()
270 hw_stats = &adapter->hw_stats; in ena_sysctl_add_stats()
271 dev_stats = &adapter->dev_stats; in ena_sysctl_add_stats()
272 admin_stats = &adapter->ena_dev->admin_queue.stats; in ena_sysctl_add_stats()
309 for (i = 0; i < adapter->num_io_queues; ++i, ++tx_ring, ++rx_ring) { in ena_sysctl_add_stats()
316 adapter->que[i].oid = queue_node; in ena_sysctl_add_stats()
321 &adapter->que[i].cpu, 0, "CPU affinity"); in ena_sysctl_add_stats()
323 &adapter->que[i].domain, 0, "NUMA domain"); in ena_sysctl_add_stats()
441 ena_sysctl_add_srd_info(struct ena_adapter *adapter) in ena_sysctl_add_srd_info() argument
457 dev = adapter->pdev; in ena_sysctl_add_srd_info()
468 CTLFLAG_RD, &adapter->ena_srd_info.flags, 0, in ena_sysctl_add_srd_info()
471 srd_stats_ptr = &adapter->ena_srd_info.ena_srd_stats; in ena_sysctl_add_srd_info()
482 ena_sysctl_add_customer_metrics(struct ena_adapter *adapter) in ena_sysctl_add_customer_metrics() argument
496 dev = adapter->pdev; in ena_sysctl_add_customer_metrics()
497 ena_dev = adapter->ena_dev; in ena_sysctl_add_customer_metrics()
509 CTLFLAG_RD, &adapter->customer_metrics_array[i], 0, in ena_sysctl_add_customer_metrics()
516 ena_sysctl_add_eni_metrics(struct ena_adapter *adapter) in ena_sysctl_add_eni_metrics() argument
528 dev = adapter->pdev; in ena_sysctl_add_eni_metrics()
538 eni_metrics = &adapter->eni_metrics; in ena_sysctl_add_eni_metrics()
558 ena_sysctl_add_tuneables(struct ena_adapter *adapter) in ena_sysctl_add_tuneables() argument
566 dev = adapter->pdev; in ena_sysctl_add_tuneables()
574 CTLTYPE_U32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_tuneables()
580 CTLTYPE_U32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_tuneables()
586 CTLTYPE_U32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_tuneables()
595 CTLTYPE_U16 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_tuneables()
603 ena_sysctl_add_rss(struct ena_adapter *adapter) in ena_sysctl_add_rss() argument
611 dev = adapter->pdev; in ena_sysctl_add_rss()
624 CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_rss()
629 CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_rss()
640 ena_sysctl_add_irq_affinity(struct ena_adapter *adapter) in ena_sysctl_add_irq_affinity() argument
648 dev = adapter->pdev; in ena_sysctl_add_irq_affinity()
660 CTLTYPE_S32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_irq_affinity()
665 CTLTYPE_S32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, in ena_sysctl_add_irq_affinity()
684 ena_sysctl_update_queue_node_nb(struct ena_adapter *adapter, int old, int new) in ena_sysctl_update_queue_node_nb() argument
690 max = MIN(MAX(old, new), adapter->max_num_io_queues); in ena_sysctl_update_queue_node_nb()
693 oid = adapter->que[i].oid; in ena_sysctl_update_queue_node_nb()
707 struct ena_adapter *adapter = arg1; in ena_sysctl_buf_ring_size() local
712 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_buf_ring_size()
720 val = adapter->buf_ring_size; in ena_sysctl_buf_ring_size()
727 ena_log(adapter->pdev, ERR, in ena_sysctl_buf_ring_size()
734 if (val != adapter->buf_ring_size) { in ena_sysctl_buf_ring_size()
735 ena_log(adapter->pdev, INFO, in ena_sysctl_buf_ring_size()
737 val, adapter->buf_ring_size); in ena_sysctl_buf_ring_size()
739 error = ena_update_buf_ring_size(adapter, val); in ena_sysctl_buf_ring_size()
741 ena_log(adapter->pdev, ERR, in ena_sysctl_buf_ring_size()
743 adapter->buf_ring_size); in ena_sysctl_buf_ring_size()
755 struct ena_adapter *adapter = arg1; in ena_sysctl_rx_queue_size() local
760 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_rx_queue_size()
768 val = adapter->requested_rx_ring_size; in ena_sysctl_rx_queue_size()
774 if (val < ENA_MIN_RING_SIZE || val > adapter->max_rx_ring_size) { in ena_sysctl_rx_queue_size()
775 ena_log(adapter->pdev, ERR, in ena_sysctl_rx_queue_size()
777 val, ENA_MIN_RING_SIZE, adapter->max_rx_ring_size); in ena_sysctl_rx_queue_size()
784 ena_log(adapter->pdev, ERR, in ena_sysctl_rx_queue_size()
791 if (val != adapter->requested_rx_ring_size) { in ena_sysctl_rx_queue_size()
792 ena_log(adapter->pdev, INFO, in ena_sysctl_rx_queue_size()
794 adapter->requested_rx_ring_size); in ena_sysctl_rx_queue_size()
796 error = ena_update_queue_size(adapter, in ena_sysctl_rx_queue_size()
797 adapter->requested_tx_ring_size, val); in ena_sysctl_rx_queue_size()
799 ena_log(adapter->pdev, ERR, in ena_sysctl_rx_queue_size()
801 adapter->requested_rx_ring_size); in ena_sysctl_rx_queue_size()
811 * Change number of effectively used IO queues adapter->num_io_queues
816 struct ena_adapter *adapter = arg1; in ena_sysctl_io_queues_nb() local
821 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_io_queues_nb()
828 tmp = adapter->num_io_queues; in ena_sysctl_io_queues_nb()
835 ena_log(adapter->pdev, ERR, in ena_sysctl_io_queues_nb()
842 * The adapter::max_num_io_queues is the HW capability. The system in ena_sysctl_io_queues_nb()
844 * the relation `adapter::max_num_io_queues >= adapter::msix_vecs` in ena_sysctl_io_queues_nb()
845 * always holds true, while the `adapter::msix_vecs` is variable across in ena_sysctl_io_queues_nb()
848 if (tmp > (adapter->msix_vecs - ENA_ADMIN_MSIX_VEC)) { in ena_sysctl_io_queues_nb()
849 ena_log(adapter->pdev, ERR, in ena_sysctl_io_queues_nb()
851 adapter->msix_vecs - ENA_ADMIN_MSIX_VEC); in ena_sysctl_io_queues_nb()
855 if (tmp == adapter->num_io_queues) { in ena_sysctl_io_queues_nb()
856 ena_log(adapter->pdev, ERR, in ena_sysctl_io_queues_nb()
859 adapter->num_io_queues); in ena_sysctl_io_queues_nb()
861 ena_log(adapter->pdev, INFO, in ena_sysctl_io_queues_nb()
864 tmp, adapter->num_io_queues); in ena_sysctl_io_queues_nb()
866 old_num_queues = adapter->num_io_queues; in ena_sysctl_io_queues_nb()
867 error = ena_update_io_queue_nb(adapter, tmp); in ena_sysctl_io_queues_nb()
871 ena_sysctl_update_queue_node_nb(adapter, old_num_queues, tmp); in ena_sysctl_io_queues_nb()
883 struct ena_adapter *adapter = arg1; in ena_sysctl_metrics_interval() local
888 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_metrics_interval()
895 interval = adapter->metrics_sample_interval; in ena_sysctl_metrics_interval()
902 ena_log(adapter->pdev, ERR, in ena_sysctl_metrics_interval()
910 ena_log(adapter->pdev, INFO, in ena_sysctl_metrics_interval()
912 bzero(&adapter->eni_metrics, sizeof(adapter->eni_metrics)); in ena_sysctl_metrics_interval()
914 ena_log(adapter->pdev, INFO, in ena_sysctl_metrics_interval()
920 adapter->metrics_sample_interval = interval; in ena_sysctl_metrics_interval()
931 struct ena_adapter *adapter = arg1; in ena_sysctl_irq_base_cpu() local
936 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_irq_base_cpu()
943 irq_base_cpu = adapter->irq_cpu_base; in ena_sysctl_irq_base_cpu()
950 ena_log(adapter->pdev, ERR, in ena_sysctl_irq_base_cpu()
957 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_base_cpu()
964 if (irq_base_cpu == adapter->irq_cpu_base) { in ena_sysctl_irq_base_cpu()
965 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_base_cpu()
968 adapter->irq_cpu_base); in ena_sysctl_irq_base_cpu()
972 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_base_cpu()
974 irq_base_cpu, adapter->irq_cpu_base); in ena_sysctl_irq_base_cpu()
976 error = ena_update_base_cpu(adapter, irq_base_cpu); in ena_sysctl_irq_base_cpu()
987 struct ena_adapter *adapter = arg1; in ena_sysctl_irq_cpu_stride() local
992 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_irq_cpu_stride()
999 irq_cpu_stride = adapter->irq_cpu_stride; in ena_sysctl_irq_cpu_stride()
1006 ena_log(adapter->pdev, ERR, in ena_sysctl_irq_cpu_stride()
1013 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_cpu_stride()
1017 if (irq_cpu_stride == adapter->irq_cpu_stride) { in ena_sysctl_irq_cpu_stride()
1018 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_cpu_stride()
1021 adapter->irq_cpu_stride); in ena_sysctl_irq_cpu_stride()
1025 ena_log(adapter->pdev, INFO, in ena_sysctl_irq_cpu_stride()
1027 irq_cpu_stride, adapter->irq_cpu_stride); in ena_sysctl_irq_cpu_stride()
1029 error = ena_update_cpu_stride(adapter, irq_cpu_stride); in ena_sysctl_irq_cpu_stride()
1046 struct ena_adapter *adapter = arg1; in ena_sysctl_rss_key() local
1047 struct ena_com_dev *ena_dev = adapter->ena_dev; in ena_sysctl_rss_key()
1056 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_rss_key()
1061 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_RSS_ACTIVE, adapter))) { in ena_sysctl_rss_key()
1070 error = ena_com_get_hash_function(adapter->ena_dev, &ena_func); in ena_sysctl_rss_key()
1072 device_printf(adapter->pdev, "Cannot get hash function\n"); in ena_sysctl_rss_key()
1078 device_printf(adapter->pdev, "Unsupported hash algorithm\n"); in ena_sysctl_rss_key()
1084 device_printf(adapter->pdev, "Cannot get hash key\n"); in ena_sysctl_rss_key()
1097 device_printf(adapter->pdev, "Invalid key size\n"); in ena_sysctl_rss_key()
1108 device_printf(adapter->pdev, in ena_sysctl_rss_key()
1116 device_printf(adapter->pdev, "Cannot fill hash key\n"); in ena_sysctl_rss_key()
1143 struct ena_adapter *adapter = arg1; in ena_sysctl_rss_indir_table() local
1149 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEVICE_RUNNING, adapter))) { in ena_sysctl_rss_indir_table()
1154 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_RSS_ACTIVE, adapter))) { in ena_sysctl_rss_indir_table()
1159 indir = adapter->rss_indir; in ena_sysctl_rss_indir_table()
1171 num_queues = adapter->num_io_queues; in ena_sysctl_rss_indir_table()
1181 device_printf(adapter->pdev, "Invalid index: %s\n", in ena_sysctl_rss_indir_table()
1188 device_printf(adapter->pdev, "Index %d out of range\n", in ena_sysctl_rss_indir_table()
1197 device_printf(adapter->pdev, "Missing ':' separator\n"); in ena_sysctl_rss_indir_table()
1205 device_printf(adapter->pdev, "Invalid value: %s\n", in ena_sysctl_rss_indir_table()
1212 device_printf(adapter->pdev, "Value %d out of range\n", in ena_sysctl_rss_indir_table()
1222 ena_rss_indir_get(adapter, indir->table); in ena_sysctl_rss_indir_table()
1228 error = ena_rss_indir_set(adapter, indir->table); in ena_sysctl_rss_indir_table()