2008-10-08 16:22:14

by Tom Talpey

[permalink] [raw]
Subject: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

Internal RPC/RDMA structure updates in preparation for FRMR support.

Signed-off-by: Tom Tucker <[email protected]>
Signed-off-by: Tom Talpey <[email protected]>
---

net/sunrpc/xprtrdma/xprt_rdma.h | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h
index 4de56b1..55a5d92 100644
--- a/include/linux/sunrpc/xprtrdma.h
+++ b/include/linux/sunrpc/xprtrdma.h
@@ -78,6 +78,7 @@ enum rpcrdma_memreg {
RPCRDMA_MEMWINDOWS,
RPCRDMA_MEMWINDOWS_ASYNC,
RPCRDMA_MTHCAFMR,
+ RPCRDMA_FRMR,
RPCRDMA_ALLPHYSICAL,
RPCRDMA_LAST
};
diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
index 2427822..05b7898 100644
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -58,6 +58,8 @@ struct rpcrdma_ia {
struct rdma_cm_id *ri_id;
struct ib_pd *ri_pd;
struct ib_mr *ri_bind_mem;
+ u32 ri_dma_lkey;
+ int ri_have_dma_lkey;
struct completion ri_done;
int ri_async_rc;
enum rpcrdma_memreg ri_memreg_strategy;
@@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
union {
struct ib_mw *mw;
struct ib_fmr *fmr;
+ struct {
+ struct ib_fast_reg_page_list *fr_pgl;
+ struct ib_mr *fr_mr;
+ } frmr;
} r;
struct list_head mw_list;
} *rl_mw;
@@ -198,7 +204,7 @@ struct rpcrdma_buffer {
atomic_t rb_credits; /* most recent server credits */
unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
int rb_max_requests;/* client max requests */
- struct list_head rb_mws; /* optional memory windows/fmrs */
+ struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
int rb_send_index;
struct rpcrdma_req **rb_send_bufs;
int rb_recv_index;



2008-10-08 17:23:47

by Trond Myklebust

[permalink] [raw]
Subject: Re: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

On Wed, 2008-10-08 at 11:47 -0400, Tom Talpey wrote:
> Internal RPC/RDMA structure updates in preparation for FRMR support.
>
> Signed-off-by: Tom Tucker <[email protected]>
> Signed-off-by: Tom Talpey <[email protected]>

Shouldn't there be a

From: Tom Tucker <[email protected]>

at the top of this email in order to indicate that Tom Tucker is the
author?

> ---
>
> net/sunrpc/xprtrdma/xprt_rdma.h | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h
> index 4de56b1..55a5d92 100644
> --- a/include/linux/sunrpc/xprtrdma.h
> +++ b/include/linux/sunrpc/xprtrdma.h
> @@ -78,6 +78,7 @@ enum rpcrdma_memreg {
> RPCRDMA_MEMWINDOWS,
> RPCRDMA_MEMWINDOWS_ASYNC,
> RPCRDMA_MTHCAFMR,
> + RPCRDMA_FRMR,
> RPCRDMA_ALLPHYSICAL,
> RPCRDMA_LAST
> };
> diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
> index 2427822..05b7898 100644
> --- a/net/sunrpc/xprtrdma/xprt_rdma.h
> +++ b/net/sunrpc/xprtrdma/xprt_rdma.h
> @@ -58,6 +58,8 @@ struct rpcrdma_ia {
> struct rdma_cm_id *ri_id;
> struct ib_pd *ri_pd;
> struct ib_mr *ri_bind_mem;
> + u32 ri_dma_lkey;
> + int ri_have_dma_lkey;
> struct completion ri_done;
> int ri_async_rc;
> enum rpcrdma_memreg ri_memreg_strategy;
> @@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
> union {
> struct ib_mw *mw;
> struct ib_fmr *fmr;
> + struct {
> + struct ib_fast_reg_page_list *fr_pgl;
> + struct ib_mr *fr_mr;
> + } frmr;
> } r;
> struct list_head mw_list;
> } *rl_mw;
> @@ -198,7 +204,7 @@ struct rpcrdma_buffer {
> atomic_t rb_credits; /* most recent server credits */
> unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
> int rb_max_requests;/* client max requests */
> - struct list_head rb_mws; /* optional memory windows/fmrs */
> + struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
> int rb_send_index;
> struct rpcrdma_req **rb_send_bufs;
> int rb_recv_index;
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2008-10-08 17:31:33

by Talpey, Thomas

[permalink] [raw]
Subject: Re: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

At 01:23 PM 10/8/2008, Trond Myklebust wrote:
>On Wed, 2008-10-08 at 11:47 -0400, Tom Talpey wrote:
>> Internal RPC/RDMA structure updates in preparation for FRMR support.
>>
>> Signed-off-by: Tom Tucker <[email protected]>
>> Signed-off-by: Tom Talpey <[email protected]>
>
>Shouldn't there be a
>
>From: Tom Tucker <[email protected]>
>
>at the top of this email in order to indicate that Tom Tucker is the
>author?

Co-author. Should it have two From lines?

Tom.

>
>> ---
>>
>> net/sunrpc/xprtrdma/xprt_rdma.h | 8 +++++++-
>> 1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/sunrpc/xprtrdma.h
>b/include/linux/sunrpc/xprtrdma.h
>> index 4de56b1..55a5d92 100644
>> --- a/include/linux/sunrpc/xprtrdma.h
>> +++ b/include/linux/sunrpc/xprtrdma.h
>> @@ -78,6 +78,7 @@ enum rpcrdma_memreg {
>> RPCRDMA_MEMWINDOWS,
>> RPCRDMA_MEMWINDOWS_ASYNC,
>> RPCRDMA_MTHCAFMR,
>> + RPCRDMA_FRMR,
>> RPCRDMA_ALLPHYSICAL,
>> RPCRDMA_LAST
>> };
>> diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h
>b/net/sunrpc/xprtrdma/xprt_rdma.h
>> index 2427822..05b7898 100644
>> --- a/net/sunrpc/xprtrdma/xprt_rdma.h
>> +++ b/net/sunrpc/xprtrdma/xprt_rdma.h
>> @@ -58,6 +58,8 @@ struct rpcrdma_ia {
>> struct rdma_cm_id *ri_id;
>> struct ib_pd *ri_pd;
>> struct ib_mr *ri_bind_mem;
>> + u32 ri_dma_lkey;
>> + int ri_have_dma_lkey;
>> struct completion ri_done;
>> int ri_async_rc;
>> enum rpcrdma_memreg ri_memreg_strategy;
>> @@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
>> union {
>> struct ib_mw *mw;
>> struct ib_fmr *fmr;
>> + struct {
>> + struct ib_fast_reg_page_list *fr_pgl;
>> + struct ib_mr *fr_mr;
>> + } frmr;
>> } r;
>> struct list_head mw_list;
>> } *rl_mw;
>> @@ -198,7 +204,7 @@ struct rpcrdma_buffer {
>> atomic_t rb_credits; /* most recent server credits */
>> unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
>> int rb_max_requests;/* client max requests */
>> - struct list_head rb_mws; /* optional memory windows/fmrs */
>> + struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
>> int rb_send_index;
>> struct rpcrdma_req **rb_send_bufs;
>> int rb_recv_index;
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html


2008-10-08 17:40:42

by Trond Myklebust

[permalink] [raw]
Subject: Re: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

On Wed, 2008-10-08 at 13:30 -0400, Talpey, Thomas wrote:
> At 01:23 PM 10/8/2008, Trond Myklebust wrote:
> >On Wed, 2008-10-08 at 11:47 -0400, Tom Talpey wrote:
> >> Internal RPC/RDMA structure updates in preparation for FRMR support.
> >>
> >> Signed-off-by: Tom Tucker <[email protected]>
> >> Signed-off-by: Tom Talpey <[email protected]>
> >
> >Shouldn't there be a
> >
> >From: Tom Tucker <[email protected]>
> >
> >at the top of this email in order to indicate that Tom Tucker is the
> >author?
>
> Co-author. Should it have two From lines?

No. You can't do that... See previous suggestion.


2008-10-08 17:55:23

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

On Wed, Oct 08, 2008 at 01:30:56PM -0400, Talpey, Thomas wrote:
> At 01:23 PM 10/8/2008, Trond Myklebust wrote:
> >On Wed, 2008-10-08 at 11:47 -0400, Tom Talpey wrote:
> >> Internal RPC/RDMA structure updates in preparation for FRMR support.
> >>
> >> Signed-off-by: Tom Tucker <[email protected]>
> >> Signed-off-by: Tom Talpey <[email protected]>
> >
> >Shouldn't there be a
> >
> >From: Tom Tucker <[email protected]>
> >
> >at the top of this email in order to indicate that Tom Tucker is the
> >author?
>
> Co-author. Should it have two From lines?

Gotta pick one. I tend to leave whoever got there first as the author.
If it was a pretty involved collaboration I suppose you could even do
something cheesy like assinging half the series to one person and half
to the other.

--b.

>
> Tom.
>
> >
> >> ---
> >>
> >> net/sunrpc/xprtrdma/xprt_rdma.h | 8 +++++++-
> >> 1 files changed, 7 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/include/linux/sunrpc/xprtrdma.h
> >b/include/linux/sunrpc/xprtrdma.h
> >> index 4de56b1..55a5d92 100644
> >> --- a/include/linux/sunrpc/xprtrdma.h
> >> +++ b/include/linux/sunrpc/xprtrdma.h
> >> @@ -78,6 +78,7 @@ enum rpcrdma_memreg {
> >> RPCRDMA_MEMWINDOWS,
> >> RPCRDMA_MEMWINDOWS_ASYNC,
> >> RPCRDMA_MTHCAFMR,
> >> + RPCRDMA_FRMR,
> >> RPCRDMA_ALLPHYSICAL,
> >> RPCRDMA_LAST
> >> };
> >> diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h
> >b/net/sunrpc/xprtrdma/xprt_rdma.h
> >> index 2427822..05b7898 100644
> >> --- a/net/sunrpc/xprtrdma/xprt_rdma.h
> >> +++ b/net/sunrpc/xprtrdma/xprt_rdma.h
> >> @@ -58,6 +58,8 @@ struct rpcrdma_ia {
> >> struct rdma_cm_id *ri_id;
> >> struct ib_pd *ri_pd;
> >> struct ib_mr *ri_bind_mem;
> >> + u32 ri_dma_lkey;
> >> + int ri_have_dma_lkey;
> >> struct completion ri_done;
> >> int ri_async_rc;
> >> enum rpcrdma_memreg ri_memreg_strategy;
> >> @@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
> >> union {
> >> struct ib_mw *mw;
> >> struct ib_fmr *fmr;
> >> + struct {
> >> + struct ib_fast_reg_page_list *fr_pgl;
> >> + struct ib_mr *fr_mr;
> >> + } frmr;
> >> } r;
> >> struct list_head mw_list;
> >> } *rl_mw;
> >> @@ -198,7 +204,7 @@ struct rpcrdma_buffer {
> >> atomic_t rb_credits; /* most recent server credits */
> >> unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
> >> int rb_max_requests;/* client max requests */
> >> - struct list_head rb_mws; /* optional memory windows/fmrs */
> >> + struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
> >> int rb_send_index;
> >> struct rpcrdma_req **rb_send_bufs;
> >> int rb_recv_index;
> >>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> >> the body of a message to [email protected]
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2008-10-08 17:59:24

by Talpey, Thomas

[permalink] [raw]
Subject: Re: [PATCH 02/15] RPC/RDMA: add data types and new FRMR memory registration enum.

At 01:55 PM 10/8/2008, J. Bruce Fields wrote:
>On Wed, Oct 08, 2008 at 01:30:56PM -0400, Talpey, Thomas wrote:
>> At 01:23 PM 10/8/2008, Trond Myklebust wrote:
>> >On Wed, 2008-10-08 at 11:47 -0400, Tom Talpey wrote:
>> >> Internal RPC/RDMA structure updates in preparation for FRMR support.
>> >>
>> >> Signed-off-by: Tom Tucker <[email protected]>
>> >> Signed-off-by: Tom Talpey <[email protected]>
>> >
>> >Shouldn't there be a
>> >
>> >From: Tom Tucker <[email protected]>
>> >
>> >at the top of this email in order to indicate that Tom Tucker is the
>> >author?
>>
>> Co-author. Should it have two From lines?
>
>Gotta pick one. I tend to leave whoever got there first as the author.

Well, I threw out more than half of Tom's code, so I took over as primary. :-)

Tom.


>If it was a pretty involved collaboration I suppose you could even do
>something cheesy like assinging half the series to one person and half
>to the other.
>
>--b.
>
>>
>> Tom.
>>
>> >
>> >> ---
>> >>
>> >> net/sunrpc/xprtrdma/xprt_rdma.h | 8 +++++++-
>> >> 1 files changed, 7 insertions(+), 1 deletions(-)
>> >>
>> >> diff --git a/include/linux/sunrpc/xprtrdma.h
>> >b/include/linux/sunrpc/xprtrdma.h
>> >> index 4de56b1..55a5d92 100644
>> >> --- a/include/linux/sunrpc/xprtrdma.h
>> >> +++ b/include/linux/sunrpc/xprtrdma.h
>> >> @@ -78,6 +78,7 @@ enum rpcrdma_memreg {
>> >> RPCRDMA_MEMWINDOWS,
>> >> RPCRDMA_MEMWINDOWS_ASYNC,
>> >> RPCRDMA_MTHCAFMR,
>> >> + RPCRDMA_FRMR,
>> >> RPCRDMA_ALLPHYSICAL,
>> >> RPCRDMA_LAST
>> >> };
>> >> diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h
>> >b/net/sunrpc/xprtrdma/xprt_rdma.h
>> >> index 2427822..05b7898 100644
>> >> --- a/net/sunrpc/xprtrdma/xprt_rdma.h
>> >> +++ b/net/sunrpc/xprtrdma/xprt_rdma.h
>> >> @@ -58,6 +58,8 @@ struct rpcrdma_ia {
>> >> struct rdma_cm_id *ri_id;
>> >> struct ib_pd *ri_pd;
>> >> struct ib_mr *ri_bind_mem;
>> >> + u32 ri_dma_lkey;
>> >> + int ri_have_dma_lkey;
>> >> struct completion ri_done;
>> >> int ri_async_rc;
>> >> enum rpcrdma_memreg ri_memreg_strategy;
>> >> @@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
>> >> union {
>> >> struct ib_mw *mw;
>> >> struct ib_fmr *fmr;
>> >> + struct {
>> >> + struct ib_fast_reg_page_list *fr_pgl;
>> >> + struct ib_mr *fr_mr;
>> >> + } frmr;
>> >> } r;
>> >> struct list_head mw_list;
>> >> } *rl_mw;
>> >> @@ -198,7 +204,7 @@ struct rpcrdma_buffer {
>> >> atomic_t rb_credits; /* most recent server credits */
>> >> unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
>> >> int rb_max_requests;/* client max requests */
>> >> - struct list_head rb_mws; /* optional memory windows/fmrs */
>> >> + struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
>> >> int rb_send_index;
>> >> struct rpcrdma_req **rb_send_bufs;
>> >> int rb_recv_index;
>> >>
>> >> --
>> >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> >> the body of a message to [email protected]
>> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html