From: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
To: "Hefty, Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [RFC] split struct ib_send_wr
Date: Tue, 4 Aug 2015 09:29:24 -0700 [thread overview]
Message-ID: <20150804162924.GA4867@infradead.org> (raw)
In-Reply-To: <1828884A29C6694DAF28B7E6B8A82373A902272C-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Tue, Aug 04, 2015 at 04:07:42PM +0000, Hefty, Sean wrote:
> This looks like a reasonable start. It may help with feedback if you
> could just post the changes to ib_verbs.h.
Not sure it's all that useful, but here we go:
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 0940051..666b571 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1100,55 +1100,96 @@ struct ib_send_wr {
__be32 imm_data;
u32 invalidate_rkey;
} ex;
- union {
- struct {
- u64 remote_addr;
- u32 rkey;
- } rdma;
- struct {
- u64 remote_addr;
- u64 compare_add;
- u64 swap;
- u64 compare_add_mask;
- u64 swap_mask;
- u32 rkey;
- } atomic;
- struct {
- struct ib_ah *ah;
- void *header;
- int hlen;
- int mss;
- u32 remote_qpn;
- u32 remote_qkey;
- u16 pkey_index; /* valid for GSI only */
- u8 port_num; /* valid for DR SMPs on switch only */
- } ud;
- struct {
- u64 iova_start;
- struct ib_fast_reg_page_list *page_list;
- unsigned int page_shift;
- unsigned int page_list_len;
- u32 length;
- int access_flags;
- u32 rkey;
- } fast_reg;
- struct {
- struct ib_mw *mw;
- /* The new rkey for the memory window. */
- u32 rkey;
- struct ib_mw_bind_info bind_info;
- } bind_mw;
- struct {
- struct ib_sig_attrs *sig_attrs;
- struct ib_mr *sig_mr;
- int access_flags;
- struct ib_sge *prot;
- } sig_handover;
- } wr;
u32 xrc_remote_srq_num; /* XRC TGT QPs only */
};
+struct ib_rdma_wr {
+ struct ib_send_wr wr;
+ u64 remote_addr;
+ u32 rkey;
+};
+
+static inline struct ib_rdma_wr *rdma_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_rdma_wr, wr);
+}
+
+struct ib_atomic_wr {
+ struct ib_send_wr wr;
+ u64 remote_addr;
+ u64 compare_add;
+ u64 swap;
+ u64 compare_add_mask;
+ u64 swap_mask;
+ u32 rkey;
+};
+
+static inline struct ib_atomic_wr *atomic_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_atomic_wr, wr);
+}
+
+struct ib_ud_wr {
+ struct ib_send_wr wr;
+ struct ib_ah *ah;
+ void *header;
+ int hlen;
+ int mss;
+ u32 remote_qpn;
+ u32 remote_qkey;
+ u16 pkey_index; /* valid for GSI only */
+ u8 port_num; /* valid for DR SMPs on switch only */
+};
+
+static inline struct ib_ud_wr *ud_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_ud_wr, wr);
+}
+
+struct ib_fast_reg_wr {
+ struct ib_send_wr wr;
+ u64 iova_start;
+ struct ib_fast_reg_page_list *page_list;
+ unsigned int page_shift;
+ unsigned int page_list_len;
+ u32 length;
+ int access_flags;
+ u32 rkey;
+};
+
+static inline struct ib_fast_reg_wr *fast_reg_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_fast_reg_wr, wr);
+}
+
+struct ib_bind_mw_wr {
+ struct ib_send_wr wr;
+ struct ib_mw *mw;
+ /* The new rkey for the memory window. */
+ u32 rkey;
+ struct ib_mw_bind_info bind_info;
+};
+
+static inline struct ib_bind_mw_wr *bind_mw_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_bind_mw_wr, wr);
+}
+
+struct ib_sig_handover_wr {
+ struct ib_send_wr wr;
+ struct ib_sig_attrs *sig_attrs;
+ struct ib_mr *sig_mr;
+ int access_flags;
+ struct ib_sge *prot;
+};
+
+static inline struct ib_sig_handover_wr *sig_handover_wr(struct ib_send_wr *wr)
+{
+ return container_of(wr, struct ib_sig_handover_wr, wr);
+}
+
struct ib_recv_wr {
+ struct ib_send_wr wr;
struct ib_recv_wr *next;
u64 wr_id;
struct ib_sge *sg_list;
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-08-04 16:29 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 14:34 [RFC] split struct ib_send_wr Christoph Hellwig
[not found] ` <20150804143447.GA22172-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-04 16:07 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A82373A902272C-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-08-04 16:29 ` Christoph Hellwig [this message]
[not found] ` <20150804162924.GA4867-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-04 16:36 ` Bart Van Assche
[not found] ` <55C0EA21.2070609-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2015-08-04 16:41 ` Christoph Hellwig
2015-08-06 4:40 ` Jason Gunthorpe
[not found] ` <20150806044008.GB14153-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-08-06 9:47 ` Christoph Hellwig
2015-08-06 16:24 ` Christoph Hellwig
[not found] ` <20150806162438.GA27608-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-06 16:46 ` Sagi Grimberg
[not found] ` <55C38F74.7070200-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-08-07 7:05 ` Christoph Hellwig
2015-08-06 17:04 ` Steve Wise
[not found] ` <55C393A0.6000002-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2015-08-06 17:31 ` Christoph Hellwig
[not found] ` <20150806173143.GA25497-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-06 17:44 ` Steve Wise
2015-08-06 17:58 ` Chuck Lever
[not found] ` <0B199DE1-B76A-44BD-91BC-E4285E439C70-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-08-07 6:36 ` Christoph Hellwig
[not found] ` <20150807063637.GE31458-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-07 14:17 ` Chuck Lever
[not found] ` <72E34077-7332-4F7D-8498-E67E7192CD2A-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-08-07 14:19 ` Christoph Hellwig
[not found] ` <20150807141929.GA12442-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-13 1:45 ` Doug Ledford
[not found] ` <55CBF6C1.8010803-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-13 2:24 ` Chuck Lever
[not found] ` <79BCB01F-AD69-4BEB-8F03-F5A52701211E-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-08-13 5:54 ` Christoph Hellwig
[not found] ` <20150813055450.GA19344-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-13 13:07 ` Doug Ledford
[not found] ` <55CC9682.1020203-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-13 16:04 ` Christoph Hellwig
[not found] ` <20150813160439.GA32690-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-13 16:46 ` Chuck Lever
2015-08-13 17:22 ` Jason Gunthorpe
[not found] ` <20150813172234.GB13535-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-08-13 17:53 ` Christoph Hellwig
[not found] ` <20150813175354.GA4566-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-08-13 18:01 ` Jason Gunthorpe
2015-08-17 7:20 ` Christoph Hellwig
2015-08-07 6:36 ` 'Christoph Hellwig'
2015-08-06 17:38 ` Parav Pandit
[not found] ` <CAG53R5VWR99OUmVTYWjvQiPKDuZ=ogbsEyfTJMcURjeohYyLmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-07 6:35 ` Christoph Hellwig
2015-08-07 18:56 ` Steve Wise
2015-08-10 23:44 ` Bart Van Assche
2015-08-12 17:24 ` Sagi Grimberg
[not found] ` <55CB8161.8040702-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-08-13 15:38 ` Christoph Hellwig
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=20150804162924.GA4867@infradead.org \
--to=hch-wegcikhe2lqwvfeawa7xhq@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
/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.