Lines Matching refs:tracker

147 	/* Mark the tracker under an error and wake it up if it's running */
148 mvdev->tracker.is_err = true;
741 struct mlx5_vhca_page_tracker *tracker = &mvdev->tracker;
777 ilog2(tracker->host_qp->tracked_page_size));
779 ilog2(tracker->host_qp->max_msg_size));
780 MLX5_SET(page_track, obj_context, reporting_qpn, tracker->fw_qp->qpn);
812 tracker->id = MLX5_GET(general_obj_out_cmd_hdr, out, obj_id);
901 tracker.cq.mcq));
907 struct mlx5_vhca_page_tracker *tracker =
910 tracker, struct mlx5vf_pci_core_device, tracker);
924 if (qp_num != tracker->host_qp->qpn &&
925 qp_num != tracker->fw_qp->qpn)
941 tracker.cq.mcq);
947 struct mlx5_vhca_page_tracker *tracker,
958 cq = &tracker->cq;
990 MLX5_SET(cqc, cqc, uar_page, tracker->uar->index);
1002 mlx5_cq_arm(&cq->mcq, MLX5_CQ_DB_REQ_NOT, tracker->uar->map,
1018 struct mlx5_vhca_page_tracker *tracker, u32 max_recv_wr)
1062 MLX5_SET(qpc, qpc, pd, tracker->pdn);
1063 MLX5_SET(qpc, qpc, uar_page, tracker->uar->index);
1071 MLX5_SET(qpc, qpc, cqn_rcv, tracker->cq.mcq.cqn);
1323 struct mlx5_vhca_page_tracker *tracker = &mvdev->tracker;
1333 mlx5_eq_notifier_unregister(mdev, &tracker->nb);
1334 mlx5vf_cmd_destroy_tracker(mdev, tracker->id);
1335 mlx5vf_destroy_qp(mdev, tracker->fw_qp);
1336 mlx5vf_free_qp_recv_resources(mdev, tracker->host_qp);
1337 mlx5vf_destroy_qp(mdev, tracker->host_qp);
1338 mlx5vf_destroy_cq(mdev, &tracker->cq);
1339 mlx5_core_dealloc_pd(mdev, tracker->pdn);
1340 mlx5_put_uars_page(mdev, tracker->uar);
1366 struct mlx5_vhca_page_tracker *tracker = &mvdev->tracker;
1388 memset(tracker, 0, sizeof(*tracker));
1389 tracker->uar = mlx5_get_uars_page(mdev);
1390 if (IS_ERR(tracker->uar)) {
1391 err = PTR_ERR(tracker->uar);
1395 err = mlx5_core_alloc_pd(mdev, &tracker->pdn);
1400 err = mlx5vf_create_cq(mdev, tracker, max_recv_wr);
1404 host_qp = mlx5vf_create_rc_qp(mdev, tracker, max_recv_wr);
1422 err = mlx5vf_alloc_qp_recv_resources(mdev, host_qp, tracker->pdn,
1427 fw_qp = mlx5vf_create_rc_qp(mdev, tracker, 0);
1441 tracker->host_qp = host_qp;
1442 tracker->fw_qp = fw_qp;
1447 MLX5_NB_INIT(&tracker->nb, mlx5vf_event_notifier, NOTIFY_ANY);
1448 mlx5_eq_notifier_register(mdev, &tracker->nb);
1461 mlx5vf_destroy_cq(mdev, &tracker->cq);
1463 mlx5_core_dealloc_pd(mdev, tracker->pdn);
1465 mlx5_put_uars_page(mdev, tracker->uar);
1572 struct mlx5_vhca_page_tracker *tracker = &mvdev->tracker;
1573 struct mlx5_vhca_cq *cq = &tracker->cq;
1589 err = mlx5vf_cmd_modify_tracker(mdev, tracker->id, iova, length,
1594 tracker->status = MLX5_PAGE_TRACK_STATE_REPORTING;
1595 while (tracker->status == MLX5_PAGE_TRACK_STATE_REPORTING &&
1596 !tracker->is_err) {
1597 poll_err = mlx5vf_cq_poll_one(cq, tracker->host_qp, dirty,
1598 &tracker->status);
1600 mlx5_cq_arm(&cq->mcq, MLX5_CQ_DB_REQ_NOT, tracker->uar->map,
1602 poll_err = mlx5vf_cq_poll_one(cq, tracker->host_qp,
1603 dirty, &tracker->status);
1616 if (tracker->status == MLX5_PAGE_TRACK_STATE_ERROR)
1617 tracker->is_err = true;
1619 if (tracker->is_err)