On Thursday 24 July 2008 11:06, Ron Livne wrote:
> > You're still not using a separate cmd structure for 
> > ib_uverbs_create_qp_expanded.
> > It is NOT a good idea to use the 8-bit reserved field for 
> > ib_uverbs_create_qp_expanded().
> > You should use a different struct (as I indicated in my previous mail).
> 
> Sorry, I couldn't find the email you were talking about. can you
> please resend it to me?
> Why isn't it good to use the reserved field? Will it not just create
> code duplication for creating a regular qp, and qp_expanded?

It will create code duplication -- this is what I was referring to when I 
suggested that
you write a helper function in my e-mail of July 21 entitled
"Re: [ofa-general] [PATCH 3/3] ib/uverbs: add support for create_qp_expanded in 
uverbs".

When I wrote the following in my feedback for libibverbs of July 21 entitled 
"Re: [ofa-general] [PATCH 1/3] libibverbs : add new verbs: create_qp_expanded":
    You should not need to touch struct ibv_create_qp
    You should define
        struct ibv_create_qp_expanded {
                ...
                __u8  sq_sig_all;
                __u8  qp_type;
                __u8  is_srq;
                __u8  reserved;
                __u32 create_flags;
                __u32 reserved2;
                __u64 driver_data[0];
        };
    and use that all along the way.

I meant that you should continue this into kernel space, and create a 
corresponding uverbs structure:
struct ib_uverbs_create_qp_expanded {
        __u64 response;
        __u64 user_handle;
        __u32 pd_handle;
        __u32 send_cq_handle;
        __u32 recv_cq_handle;
        __u32 srq_handle;
        __u32 max_send_wr;
        __u32 max_recv_wr;
        __u32 max_send_sge;
        __u32 max_recv_sge;
        __u32 max_inline_data;
        __u8  sq_sig_all;
        __u8  qp_type;
        __u8  is_srq;
        __u8  reserved;
        __u32 create_flags;
        __u32 reserved2;
        __u64 driver_data[0];
};

and use this in the ib_uverbs_create_qp_expanded function.  You can filter out 
the
common elements in ib_uverbs_create_qp_expanded() and ib_uverbs_create_qp() and 
write
an ib_uverbs_create_qp_common() function so as not to duplicate things.

- Jack
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to