Skip to content

Instantly share code, notes, and snippets.

@hiroyuki-sato
Last active January 14, 2024 12:21
Show Gist options
  • Save hiroyuki-sato/6bf67e95286745b2ffa809014fc9b519 to your computer and use it in GitHub Desktop.
Save hiroyuki-sato/6bf67e95286745b2ffa809014fc9b519 to your computer and use it in GitHub Desktop.
Infiniband pib memo

alloc_fast_reg_mrはいつなくなったの?

[d9fe6dd7afaff529124dd7f49c2da89ef789a56f] IB/hfi1: Support ib_alloc_mr verb
running grep alloc_fast_reg_mr include/rdma/ib_verbs.h
	struct ib_mr *		   (*alloc_fast_reg_mr)(struct ib_pd *pd,
 * ib_alloc_fast_reg_mr - Allocates memory region usable with the
struct ib_mr *ib_alloc_fast_reg_mr(struct ib_pd *pd, int max_page_list_len);
d9f272c523db47a56a64942eb6f25361c400de66 is the first bad commit
commit d9f272c523db47a56a64942eb6f25361c400de66
Author: Sagi Grimberg <sagig@mellanox.com>
Date:   Thu Jul 30 10:32:48 2015 +0300

    IB/core: Drop ib_alloc_fast_reg_mr

    Fully replaced by a more generic and suitable
    ib_alloc_mr.

    Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>

:040000 040000 1edf6eae3fd71bf5a4ebf76ad24af632ba00eb2c d32a72d2c962f256362e73eee05872d81a3c96a9 M	drivers
:040000 040000 84c278821209a4e067e91a9d15d8ff5653b3804b fe0bdf5b401c7cb5d8ff521f2b6d4bb3a5d6cff8 M	include
bisect run success

rdma_ah_attrはいつ無くなった?

running /tmp/a.sh
90898850ec4e7b3ba0f9a35cc7169ff19ff367a6 is the first bad commit
commit 90898850ec4e7b3ba0f9a35cc7169ff19ff367a6
Author: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
Date:   Sat Apr 29 14:41:18 2017 -0400

    IB/core: Rename struct ib_ah_attr to rdma_ah_attr

    This patch simply renames struct ib_ah_attr to
    rdma_ah_attr as these fields specify attributes that are
    not necessarily specific to IB.

    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Reviewed-by: Don Hiatt <don.hiatt@intel.com>
    Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
    Reviewed-by: Sean Hefty <sean.hefty@intel.com>
    Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>

:040000 040000 d91ca5b9fd5de7bb5c627d21fa802cf8ed63b238 323ad1d300b7da15658b9f93ed42af01f6c4a315 M	drivers
:040000 040000 5344794bed3da1aa78a87fda1523f7869004a3fe 73b189e24c2a2074645a4c073252ed32a4d214fc M	include
bisect run success

ib_send_wrの構造体変更

変更前

struct ib_send_wr {
        struct ib_send_wr      *next;
        u64                     wr_id;
        struct ib_sge          *sg_list;
        int                     num_sge;
        enum ib_wr_opcode       opcode;
        int                     send_flags;
        union {
                __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;
        } wr;
};

変更後

struct ib_send_wr {
        struct ib_send_wr      *next;
        union {
                u64             wr_id;
                struct ib_cqe   *wr_cqe;
        };
        struct ib_sge          *sg_list;
        int                     num_sge;
        enum ib_wr_opcode       opcode;
        int                     send_flags;
        union {
                __be32          imm_data;
                u32             invalidate_rkey;
        } ex;
};

struct ib_rdma_wr {
        struct ib_send_wr       wr;
        u64                     remote_addr;
        u32                     rkey;
};

alloc_fast_reg_page_listはいつなくなった?

[5eae15927b3bccca6497506c8da38895da029b98] IB/ipath: Remove fast registration from the code
running grep -q alloc_fast_reg_page_list include/rdma/ib_verbs.h
39bfc271bd687be2c8e396e976c0fb9a97963400 is the first bad commit
commit 39bfc271bd687be2c8e396e976c0fb9a97963400
Author: Sagi Grimberg <sagig@mellanox.com>
Date:   Tue Oct 13 19:11:49 2015 +0300

    IB/core: Remove old fast registration API

    No callers and no providers left, go ahead and remove it.

    Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Doug Ledford <dledford@redhat.com>

:040000 040000 3358a8d50e59656a7e3f7ea3666337c1aed6c162 8cfa6ab75c7c92e196479bb09401999c6c32a6be M	drivers
:040000 040000 173c47df9c7b8715a328b9dac11bf27acdf3e1c8 9c54a8e1a1f55ce5bda1ad73b6dcb441e1c83405 M	include
bisect run success

resp_time_valueはいつなくなった?

[507f6afa3ab6c9473d81c8091be0d1b859509a6d] IB/core: Introduce capabilitymask2 field in ClassPortInfo mad
running grep resp_time_value include/rdma/ib_mad.h
507f6afa3ab6c9473d81c8091be0d1b859509a6d is the first bad commit
commit 507f6afa3ab6c9473d81c8091be0d1b859509a6d
Author: Erez Shitrit <erezsh@mellanox.com>
Date:   Wed May 25 22:02:04 2016 +0300

    IB/core: Introduce capabilitymask2 field in ClassPortInfo mad

    Change struct ib_class_port_info to conform to IB Spec 1.3
    That in order to get specific capability mask from ClassPortInfo mad.

    >From the IB Spec, ClassPortInfo section:
            "CapabilityMask2 Bits 0-26: Additional class-specific capabilities...
             RespTimeValue the rest 5 bits"

    The new struct now has one field for capabilitymask2 (previously was the
    reserved field) and the resp_time field.

    And it fixes up qib and srpt, use of the field repurposed to be used as
    capabilitymask2:
    IB/qib: Change pma_get_classportinfo
    IB/srpt: Adjust the use of ib_class_port_info

    Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Reviewed-by: Hal Rosenstock <hal@mellanox.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>

:040000 040000 c2fe5fdddcd7027464f26d890f70c514cd577ee5 16db17507ffb4b3673cb55d655ff4f35a6deefd3 M	drivers
:040000 040000 4bf203d13e5cc551977faa747dad88b856a6462c f0b741ea0d006d123ba64608ee01b57a15fecfc3 M	include
bisect run success

ib_umem構造体から、page_sizeがなくなったのはいつ?

[3e7e1193e28a1428e857f3f44870ec2dbd615e6a] IB: Replace ib_umem page_size by page_shift
running grep page_size include/rdma/ib_umem.h
3e7e1193e28a1428e857f3f44870ec2dbd615e6a is the first bad commit
commit 3e7e1193e28a1428e857f3f44870ec2dbd615e6a
Author: Artemy Kovalyov <artemyko@mellanox.com>
Date:   Wed Apr 5 09:23:50 2017 +0300

    IB: Replace ib_umem page_size by page_shift

    Size of pages are held by struct ib_umem in page_size field.

    It is better to store it as an exponent, because page size by nature
    is always power-of-two and used as a factor, divisor or ilog2's argument.

    The conversion of page_size to be page_shift allows to have portable
    code and avoid following error while compiling on ARM:

      ERROR: "__aeabi_uldivmod" [drivers/infiniband/core/ib_core.ko] undefined!

    CC: Selvin Xavier <selvin.xavier@broadcom.com>
    CC: Steve Wise <swise@chelsio.com>
    CC: Lijun Ou <oulijun@huawei.com>
    CC: Shiraz Saleem <shiraz.saleem@intel.com>
    CC: Adit Ranadive <aditr@vmware.com>
    CC: Dennis Dalessandro <dennis.dalessandro@intel.com>
    CC: Ram Amrani <Ram.Amrani@Cavium.com>
    Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Acked-by: Ram Amrani <Ram.Amrani@cavium.com>
    Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Acked-by: Adit Ranadive <aditr@vmware.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>

:040000 040000 de9bfd10e0ce22ec94beb15cc004ddf39e5e3ac8 08bf45130f07865e4e39a57b2eaf2910e67da615 M	drivers
:040000 040000 5e75d7432523d1b29d37991686521f409986e248 e2c1cf2177eebb2f53fbcb7086d05803323bcf6f M	include
bisect run success
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment