On Thu, Jan 2, 2020 at 6:00 PM Bart Van Assche <bvanassche@xxxxxxx> wrote: > > On 1/2/20 7:27 AM, Jinpu Wang wrote: > > On Mon, Dec 30, 2019 at 8:48 PM Bart Van Assche <bvanassche@xxxxxxx> wrote: > >> On 2019-12-30 02:29, Jack Wang wrote: > >>> +enum { > >>> + SERVICE_CON_QUEUE_DEPTH = 512, > >> > >> What is a service connection? > > s/SERVICE_CON_QUEUE_DEPTH/CON_QUEUE_DEPTH/g, do you think > > CON_QUEUE_DEPTH is better or just QUEUE_DEPTH? > > The name of the constant is fine, but what I meant is the following: has > it been documented anywhere what the role of a "service connection" is? ah, get your point now, will add a comment before the constant. > > >>> +struct rtrs_ib_dev_pool { > >>> + struct mutex mutex; > >>> + struct list_head list; > >>> + enum ib_pd_flags pd_flags; > >>> + const struct rtrs_ib_dev_pool_ops *ops; > >>> +}; > >> > >> What is the purpose of an rtrs_ib_dev_pool and what does it contain? > > The idea was documented in the patchset here: > > https://www.spinics.net/lists/linux-rdma/msg64025.html > > "' > > This is an attempt to make a device pool API out of a common code, > > which caches pair of ib_device and ib_pd pointers. I found 4 places, > > where this common functionality can be replaced by some lib calls: > > nvme, nvmet, iser and isert. Total deduplication gain in loc is not > > quite significant, but eventually new ULP IB code can also require > > the same device/pd pair cache, e.g. in our IBTRS module the same > > code has to be repeated again, which was observed by Sagi and he > > suggested to make a common helper function instead of producing > > another copy. > > ''' > > The word "pool" suggest ownership. Since struct rtrs_ib_dev_pool owns > protection domains instead of RDMA devices, how about renaming that data > structure into rtrs_pd_per_rdma_dev, rtrs_rdma_dev_pd or something > similar? How about adding a comment like the following above that data > structure? rtrs_rdma_dev_pd sounds better to me, will also add the comments. > > /* > * Data structure used to associate one protection domain (PD) with each > * RDMA device. > */ > > >>> +/** > >>> + * struct rtrs_msg_conn_req - Client connection request to the server > >>> + * @magic: RTRS magic > >>> + * @version: RTRS protocol version > >>> + * @cid: Current connection id > >>> + * @cid_num: Number of connections per session > >>> + * @recon_cnt: Reconnections counter > >>> + * @sess_uuid: UUID of a session (path) > >>> + * @paths_uuid: UUID of a group of sessions (paths) > >>> + * > >>> + * NOTE: max size 56 bytes, see man rdma_connect(). > >>> + */ > >>> +struct rtrs_msg_conn_req { > >>> + u8 __cma_version; /* Is set to 0 by cma.c in case of > >>> + * AF_IB, do not touch that. > >>> + */ > >>> + u8 __ip_version; /* On sender side that should be > >>> + * set to 0, or cma_save_ip_info() > >>> + * extract garbage and will fail. > >>> + */ > >> > >> The above two fields and the comments next to it look suspicious to me. > >> Does RTRS perhaps try to generate CMA-formatted messages without using > >> the CMA to format these messages? > > The problem is in cma_format_hdr over-writes the first byte for AF_IB > > https://www.spinics.net/lists/linux-rdma/msg22397.html > > > > No one fixes the problem since then. > > How about adding that URL to the comment block above struct > rtrs_msg_conn_req? Ok Thanks