Re: [PATCH v11 00/22] Add HiSilicon RoCE driver

From: oulijun
Date: Wed Jul 13 2016 - 23:46:03 EST


在 2016/7/2 17:39, Lijun Ou 写道:
> The HiSilicon Network Substem is a long term evolution IP which is
> supposed to be used in HiSilicon ICT SoCs. HNS (HiSilicon Network
> Sybsystem) also has a hardware support of performing RDMA with
> RoCEE.
> The driver for HiSilicon RoCEE(RoCE Engine) is a platform driver and
> will support mulitple versions of SOCs in future. This version of driver
> is meant to support Hip06 SoC(which confirms to RoCEv1 hardware
> specifications).
>
> Changes v10 -> v11:
> [1/22]:
> 1. modify the print description of chip don't support roce
> 2. remove explicit values for enums for patch series
> [3/22]:
> 3. remove non-essential headers for patch series
> 4. add judgement for port_cnt is zero
> 5. Keep unified print style for "set mask..." vs. "No usable
> ..."
> 6. modify the MODULE_LICENSE
> 7. remove MODULE_ALIAS
> [4/22]:
> 8. Move this line out of if-else and leave "if (enable)" part only
> 9. renaming the meaningful definition to 20 for patch series
> 10. delete extern keyword for hns_dsaf_roce_reset function
> 11. delete void keyword for hr_dev->hw->reset when driver removed
> [5/22]:
> 12. remove few unnecessary variables and some lines.
> 13. remove the function for one line of code which will be called
> once only for patch series
> [6/22]:
> 14. redesign the method for calculating token_mask' value
> [7/22]:
> 15. delete hns_roce_status_to_errno
> 16. modify the one enum only for all patches
> 17. remove the spin_lock in hns_roce_cq_event function
> 18. add comment here that 0x10 and 0x11 in hns_roce_event struct
> 19. refactor hns_roce_aeq_int function and It has switch in switch
> and it is almost 200 LOCs
> 20. simplify the lines for err_out_free_pages branch
> [8/22]:
> 21. remove icm and redesign it for patch series
>
> Changes v9 -> v10:
> 1. delete redundant lines which it is netdevice.h in hns_roce_main.c
> 2. adjust the indentation for HNS_ROCE_V1_NUM_ASYNC_EQE
> 3. simplify the lines in hns_roce_init_qp_table function
> 4. add static type for hns_roce_unregister_device
> 5. move the call with hns_roce_unregister_device from the tenth patch to
> the eleventh patch in hns_roce_remove function
> 6. readjuest the alphabetic order in MAINTAINERS
> 7. redesigned the way for getting irq names
> 8. avoid the memory leakage because mr->pbl is not free in
> hns_roce_mr function
> 9. avoid the memory leakage because not kfree table->icm when exception
> 10. add the link from LKML as well whose comment in all
>
> Changes v8 -> v9:
> 1. delete the definition of ADDR_SHIFT_n, use literal 12, 32 and 44 and
> add comments
> 2. use roce_read/roce_write/readl/write instead of roce_readl/roce_writel
> 3. delete the print error/debug messages for memory allocation errors
> 4. use exit instead of uninit, for example hw->uninit -> hw->exit
> 5. use roce_raw_write instead of _raw_writel in eq_set_cons_index
> 6. modify the label with underscore
> 7. adjust the indentation for the macro definitions in hns_roce_hw_v1.c
> 8. simplify some lines in few functions and structures
> 9. adjust the alphabetic order in MAINTAINERS
>
> Changes v7 -> v8:
> 1. add a verbs operation named get_port_immutable. It is an
> independent patch
> 2. add a comment for the definition of ADDR_SHIFT_n, n are 12,32
> and 44
> 3. restructures the code to align with naming convention of the Linux
> according to the review of Doug Ledford
> 4. modify the state for all .c and .h files
>
> Changes v6 -> v7:
> 1. modify some type of parameter, use bool replace the original type
> 2. add the Signed-off-by signatures in the first patch
> 3. delete the improper print sentence in hns_roce_create_eq.
>
> Changes v5 -> v6:
> 1. modify the type of obj for unsigned long according the reviews, and
> modify the same questions in RoCE module
> 2. fix the spelling error
> 3. fix the Signed-off-by signatures
>
> Changes v4 -> v5:
> 1. redesign the patchset for RoCE modules in order to split the huge
> patch into small patches
> 2. fix the directory path for RoCE module. Delete the hisilicon level.
> 3. modify the name of roce_v1_hw into roce_hw_v1
>
> Changes v3 -> v4:
> 1. modify roce.o into hns-roce.o in Makefile and Kconfig file
>
> Changes v2 -> v3:
> 1. modify the formats of RoCE driver code base v2 by the experts
> reviewing. also, it used kmalloc_array instead of kmalloc, kcalloc
> instead of kzalloc, when refer to memory allocation for array
> 2. remove some functions without use and unconnected macros
> 3. modify the binding document with RoCE DT base v2 which added
> interrupt-names
> 4. redesign the port_map and si_map in hns_dsaf_roce_reset
> 5. add HiSilicon RoCE driver maintainers introduction in MAINTAINERS
> document
>
> Changes v1 -> v2:
> 1. modify the formats of roce driver code by the experts reviewing
> 2. modify the bindings file with roce dts. add the attribute named
> interrput-names.
> 3. modify the way of defining port mode in hns_dsaf_main.c
> 4. move the Kconfig file into the hns directory and send it with roce
>
> Lijun Ou (22):
> net: hns: Add reset function support for RoCE driver
> devicetree: bindings: IB: Add binding document for HiSilicon RoCE
> IB/hns: Add initial main frame driver and get cfg info
> IB/hns: Add RoCE engine reset function
> IB/hns: Add initial profile resource
> IB/hns: Add initial cmd operation
> IB/hns: Add event queue support
> IB/hns: Add hem support
> IB/hns: Add hca support
> IB/hns: Add process flow to init RoCE engine
> IB/hns: Add IB device registration
> IB/hns: Set mtu and gid support
> IB/hns: Add interface of the protocol stack registration
> IB/hns: Add operations support for IB device and port
> IB/hns: Add PD operations support
> IB/hns: Add ah operations support
> IB/hns: Add QP operations support
> IB/hns: Add CQ operations support
> IB/hns: Add memory region operations support
> IB/hns: Add operation for getting immutable port
> IB/hns: Kconfig and Makefile for RoCE module
> MAINTAINERS: Add maintainers for HiSilicon RoCE driver
>
> .../bindings/infiniband/hisilicon-hns-roce.txt | 107 +
> MAINTAINERS | 8 +
> drivers/infiniband/Kconfig | 1 +
> drivers/infiniband/hw/Makefile | 1 +
> drivers/infiniband/hw/hns/Kconfig | 10 +
> drivers/infiniband/hw/hns/Makefile | 8 +
> drivers/infiniband/hw/hns/hns_roce_ah.c | 128 +
> drivers/infiniband/hw/hns/hns_roce_alloc.c | 257 ++
> drivers/infiniband/hw/hns/hns_roce_cmd.c | 371 +++
> drivers/infiniband/hw/hns/hns_roce_cmd.h | 80 +
> drivers/infiniband/hw/hns/hns_roce_common.h | 325 +++
> drivers/infiniband/hw/hns/hns_roce_cq.c | 446 ++++
> drivers/infiniband/hw/hns/hns_roce_device.h | 734 ++++++
> drivers/infiniband/hw/hns/hns_roce_eq.c | 762 ++++++
> drivers/infiniband/hw/hns/hns_roce_eq.h | 130 +
> drivers/infiniband/hw/hns/hns_roce_hem.c | 476 ++++
> drivers/infiniband/hw/hns/hns_roce_hem.h | 131 +
> drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 2781 ++++++++++++++++++++
> drivers/infiniband/hw/hns/hns_roce_hw_v1.h | 981 +++++++
> drivers/infiniband/hw/hns/hns_roce_main.c | 1059 ++++++++
> drivers/infiniband/hw/hns/hns_roce_mr.c | 614 +++++
> drivers/infiniband/hw/hns/hns_roce_pd.c | 144 +
> drivers/infiniband/hw/hns/hns_roce_qp.c | 855 ++++++
> drivers/infiniband/hw/hns/hns_roce_user.h | 53 +
> drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 84 +
> drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 30 +
> drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 36 +
> drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 15 +-
> 28 files changed, 10626 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt
> create mode 100644 drivers/infiniband/hw/hns/Kconfig
> create mode 100644 drivers/infiniband/hw/hns/Makefile
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_ah.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_alloc.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_cmd.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_cmd.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_common.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_cq.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_device.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_eq.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_eq.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_hem.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_hem.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_hw_v1.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_hw_v1.h
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_main.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_mr.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_pd.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_qp.c
> create mode 100644 drivers/infiniband/hw/hns/hns_roce_user.h
>
Hi, Doug & Sean Hefty & Hal Rosenstock
"Hello, I understand that maintainer is dealing with lots of patches not just mine. Also, I could not see any further review comments from the community.
I also understand that I should not resend the patch-set again unless I am sure my patch-set is lost.
I was just wondering what should I do in the current circumstance where my PATCH<please mention the patch name here or Link from LKML>" has not activity.
I am not sure if this has been accepted or how much I need to wait to resend it (if ever). Please guide, I am new to open-source and learning from people like you. Thanks a lot :)"

Thanks
Lijun Ou