From: Jason Gunthorpe <jgg@nvidia.com>
To: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Cc: dledford@redhat.com, leon@kernel.org, linux-rdma@vger.kernel.org
Subject: Re: [PATCH 4/5] rdma-core/irdma: Add library setup and utility definitions
Date: Tue, 6 Apr 2021 19:59:49 -0300 [thread overview]
Message-ID: <20210406225949.GA7405@nvidia.com> (raw)
In-Reply-To: <20210406211728.1362-5-tatyana.e.nikolova@intel.com>
On Tue, Apr 06, 2021 at 04:17:27PM -0500, Tatyana Nikolova wrote:
> +struct irdma_qp_uk_ops {
> + enum irdma_status_code (*iw_inline_rdma_write)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> + enum irdma_status_code (*iw_inline_send)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> + enum irdma_status_code (*iw_mw_bind)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> + enum irdma_status_code (*iw_post_nop)(struct irdma_qp_uk *qp, __u64 wr_id,
> + bool signaled, bool post_sq);
> + enum irdma_status_code (*iw_post_receive)(struct irdma_qp_uk *qp,
> + struct irdma_post_rq_info *info);
> + void (*iw_qp_post_wr)(struct irdma_qp_uk *qp);
> + void (*iw_qp_ring_push_db)(struct irdma_qp_uk *qp, __u32 wqe_index);
> + enum irdma_status_code (*iw_rdma_read)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool inv_stag, bool post_sq);
> + enum irdma_status_code (*iw_rdma_write)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> + enum irdma_status_code (*iw_send)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> + enum irdma_status_code (*iw_stag_local_invalidate)(struct irdma_qp_uk *qp,
> + struct irdma_post_sq_info *info,
> + bool post_sq);
> +};
> +
> +struct irdma_wqe_uk_ops {
> + void (*iw_copy_inline_data)(__u8 *dest, __u8 *src, __u32 len, __u8 polarity);
> + __u16 (*iw_inline_data_size_to_quanta)(__u32 data_size);
> + void (*iw_set_fragment)(__le64 *wqe, __u32 offset, struct irdma_sge *sge,
> + __u8 valid);
> + void (*iw_set_mw_bind_wqe)(__le64 *wqe,
> + struct irdma_bind_window *op_info);
> +};
> +
> +struct irdma_cq_ops {
> + void (*iw_cq_clean)(void *q, struct irdma_cq_uk *cq);
> + enum irdma_status_code (*iw_cq_poll_cmpl)(struct irdma_cq_uk *cq,
> + struct irdma_cq_poll_info *info);
> + enum irdma_status_code (*iw_cq_post_entries)(struct irdma_cq_uk *cq,
> + __u8 count);
> + void (*iw_cq_request_notification)(struct irdma_cq_uk *cq,
> + enum irdma_cmpl_notify cq_notify);
> + void (*iw_cq_resize)(struct irdma_cq_uk *cq, void *cq_base, int size);
> + void (*iw_cq_set_resized_cnt)(struct irdma_cq_uk *qp, __u16 cnt);
> +};
> +
> +struct irdma_dev_uk;
> +
> +struct irdma_device_uk_ops {
> + enum irdma_status_code (*iw_cq_uk_init)(struct irdma_cq_uk *cq,
> + struct irdma_cq_uk_init_info *info);
> + enum irdma_status_code (*iw_qp_uk_init)(struct irdma_qp_uk *qp,
> + struct irdma_qp_uk_init_info *info);
> +};
Is there a reason for all of these internal function pointers when
there is only one implementation? This looks like data path too,
making it even more puzzling
Jason
next prev parent reply other threads:[~2021-04-06 22:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-06 21:17 [PATCH 0/5] Add irdma user space provider for Intel Ethernet RDMA Tatyana Nikolova
2021-04-06 21:17 ` [PATCH 1/5] rdma-core/i40iw: Remove provider i40iw Tatyana Nikolova
2021-04-06 22:55 ` Jason Gunthorpe
2021-04-06 21:17 ` [PATCH 2/5] rdma-core/irdma: Add Makefile and ABI definitions Tatyana Nikolova
2021-04-06 22:54 ` Jason Gunthorpe
2021-04-06 21:17 ` [PATCH 3/5] rdma-core/irdma: Add user/kernel shared libraries Tatyana Nikolova
2021-04-06 21:17 ` [PATCH 4/5] rdma-core/irdma: Add library setup and utility definitions Tatyana Nikolova
2021-04-06 22:59 ` Jason Gunthorpe [this message]
2021-04-06 21:17 ` [PATCH 5/5] rdma-core/irdma: Implement device supported verb APIs Tatyana Nikolova
-- strict thread matches above, loose matches on Subject: below --
2021-05-14 15:31 [PATCH 0/5] Add irdma user space provider for Intel Ethernet RDMA Tatyana Nikolova
2021-05-14 15:31 ` [PATCH 4/5] rdma-core/irdma: Add library setup and utility definitions Tatyana Nikolova
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210406225949.GA7405@nvidia.com \
--to=jgg@nvidia.com \
--cc=dledford@redhat.com \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=tatyana.e.nikolova@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.