All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: "Wei Hu (Xavier)" <xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
Cc: Lijun Ou <oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	jeffrey.t.kirsher-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	jiri-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	gongyangming-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	xiaokun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	tangchaofei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	haifeng.wei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	yisen.zhuang-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	yankejian-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	charles.chenxin-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	linuxarm-hv44wF8Li93QT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH v10 08/22] IB/hns: Add icm support
Date: Wed, 22 Jun 2016 08:27:00 +0300	[thread overview]
Message-ID: <20160622052700.GD9762@leon.nu> (raw)
In-Reply-To: <576A0BAD.1070803-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4987 bytes --]

On Wed, Jun 22, 2016 at 11:53:17AM +0800, Wei Hu (Xavier) wrote:

- netdev, lkml and Dave - it is unrelated to netdev and there is no
  need to SPAM them.

It will be great if next revision will have smaller list of TO/CC
participants than it has now.

> 
> 
> On 2016/6/21 19:55, Leon Romanovsky wrote:
> >On Tue, Jun 21, 2016 at 12:37:39PM +0800, Wei Hu (Xavier) wrote:
> >>
> >>On 2016/6/20 21:04, Leon Romanovsky wrote:
> >>>On Mon, Jun 20, 2016 at 05:48:15PM +0800, Wei Hu (Xavier) wrote:
> >>>>On 2016/6/20 17:27, Leon Romanovsky wrote:
> >>>>>On Mon, Jun 20, 2016 at 03:49:24PM +0800, Wei Hu (Xavier) wrote:
> >>>>>>On 2016/6/20 14:06, Leon Romanovsky wrote:
> >>>>>>>On Mon, Jun 20, 2016 at 12:37:40PM +0800, Wei Hu (Xavier) wrote:
> >>>>>>>>On 2016/6/17 17:58, Leon Romanovsky wrote:
> >>>>>>>>>On Thu, Jun 16, 2016 at 10:35:16PM +0800, Lijun Ou wrote:
> >>>>>>>>>>This patch mainly added icm support for RoCE. It initializes icm
> >>>>>>>>>>which managers the relative memory blocks for RoCE. The data
> >>>>>>>>>>structures of RoCE will be located in it. For example, CQ table,
> >>>>>>>>>>QP table and MTPT table so on.
> >>>>>>>>>>
> >>>>>>>>>>Signed-off-by: Wei Hu <xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
> >>>>>>>>>>Signed-off-by: Nenglong Zhao <zhaonenglong-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org>
> >>>>>>>>>>Signed-off-by: Lijun Ou <oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
> >>>>>>>>>>---
> >>>>>>>>><...>
> >>>>>>>>>
> >>>>>>>>>>+
> >>>>>>>Another question which you didn't answer [1].
> >>>>>>>
> >>>>>>>"I wonder if you have the same needs for ICM as it is in mlx4 device.
> >>>>>>>Do you have firmware?"
> >>>>>>>
> >>>>>>>[1] http://marc.info/?l=linux-rdma&m=146545553104913&w=2
> >>>>>>Hi, Leon
> >>>>>>     Now we haven't firmware.
> >>>>>>     But hardware still need memory for QPC\CQC\MTPT\mtt etc.
> >>>>>ICM stands for InfiniHost (Interconnect) Context Memory is a specific
> >>>>>memory place to share between host <-> FW and host <-> HW if HW is
> >>>>>aware of specific structures.
> >>>>>
> >>>>>I assume that in your case, it is enough to allocate memory region and
> >>>>>supply it to HW. Am I right?
> >>>>For Our hardware,
> >>>>1. ICM has a memory management method, It's very good for QPC\CQC\MTPT\mtt
> >>>>etc. we need it.
> >>>You need special HW to leverage its. AFAIK it is Mellanox specific.
> >>For our hardware, we use ICM to memory management, the memory shared with
> >>host and HW.
> >>QPC\CQC\MTPT\mtt has specific memory requirement.
> >>QPC\CQC\MTPT need continuous memory. we use ICM to management the block of
> >>memory. It's very good!
> >I wasn't convinced why do you need to copy whole ICM logic which is
> >specific to Mellanox. Your requirements can be implemented by standard CMA
> >and/or DMA.
> Hi, Leon
> 
> In hip06 soc,
> Hardware need multiple memory blocks for QPC\CQC\MTPT, every block has
> continuous memory xxKbyte (like 128Kbyte),
> We need to configure the first address of 128Kbyte to hardware.
> 
> For example:
> //------------------------------------------------------------------------
> example 1:
> In create qp,
> 1. If the xx Kbyte memory that include QPC related with qpn, has not been
> allocated, do step 2.
>    else do step 3.
> 2. dma_alloc xx Kbyte memory for QPC,  and configure the first address of xx
> Kbyte to hardware.
> 3. find the QPC memory in xx Kbyte, get the dma_addr.
> 4. send mailbox command to hardware to create QP.
> 
> In step 2, we call xx_table_get function as below to perform logic.
> int hns_roce_table_get(struct hns_roce_dev *hr_dev,
>                struct hns_roce_icm_table *table, unsigned long obj)
> {
>     <snip>
>     //dma_alloc_coherent 128Kbyte memory
>     hns_roce_alloc_icm(hr_dev,
>                   HNS_ROCE_TABLE_CHUNK_SIZE >> PAGE_SHIFT, xxxx);
>     <snip>
>     /*configure the first address of xx Kbyte to hardware*/
>     hns_roce_map_icm(hr_dev, table, obj);
>     <snip>
> }
> 
> In step 3, we call xx_table_find function to perform logic.
> void *hns_roce_table_find(struct hns_roce_icm_table *table, unsigned long
> obj,
>               dma_addr_t *dma_handle);
> 
> 
> example 2:
> In modify qp:
> 1. find the QPC memory,  get the virtual addr.
> 2. modify the fields of QPC.
> 3. send mailbox command to hardware to modify QP.
> 
> In step 1,  we call xx_table_find function to perform logic.
> //--------------------------------------------------------------------------
> 
> 
> so, now we haven't a firmware, but ICM algorithm still suitable for hip06
> soc perfectly.

Sure it works and you have billion other solutions in kernel which will
work too. The thing is to chose simplest possible solution and ICM is
overkill for the goal you are trying to achieve. ICM designed in mind
that this memory is owned by HW, requested by HCA and can shrink/grow
as a response to this request.

Thanks

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2016-06-22  5:27 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-16 14:35 [PATCH v10 00/22] Add HiSilicon RoCE driver Lijun Ou
2016-06-16 14:35 ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 01/22] net: hns: Add reset function support for " Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-24 11:49   ` Leon Romanovsky
2016-06-27  6:41     ` oulijun
2016-06-27  6:41       ` oulijun
2016-06-16 14:35 ` [PATCH v10 02/22] devicetree: bindings: IB: Add binding document for HiSilicon RoCE Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 04/22] IB/hns: Add RoCE engine reset function Lijun Ou
2016-06-16 14:35   ` Lijun Ou
     [not found]   ` <1466087730-54856-5-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-24 14:59     ` Leon Romanovsky
2016-06-24 14:59       ` Leon Romanovsky
     [not found]       ` <576E5C21.5030904@huawei.com>
2016-06-27  8:01         ` Leon Romanovsky
     [not found]           ` <20160627080122.GA3584-2ukJVAZIZ/Y@public.gmane.org>
2016-06-27  8:31             ` oulijun
2016-06-27  8:31               ` oulijun
2016-06-27  8:31               ` oulijun
     [not found]               ` <5770E465.1070702-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-28  6:31                 ` Wei Hu (Xavier)
2016-06-28  6:31                   ` Wei Hu (Xavier)
2016-06-28  6:31                   ` Wei Hu (Xavier)
     [not found]                   ` <577219CD.2000604-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-28  8:09                     ` Leon Romanovsky
2016-06-28  8:09                       ` Leon Romanovsky
2016-06-16 14:35 ` [PATCH v10 05/22] IB/hns: Add initial profile resource Lijun Ou
2016-06-16 14:35   ` Lijun Ou
     [not found]   ` <1466087730-54856-6-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-24 15:10     ` Leon Romanovsky
2016-06-24 15:10       ` Leon Romanovsky
     [not found]       ` <20160624151048.GF23995-2ukJVAZIZ/Y@public.gmane.org>
2016-06-28  6:56         ` oulijun
2016-06-28  6:56           ` oulijun
2016-06-28  6:56           ` oulijun
2016-06-16 14:35 ` [PATCH v10 07/22] IB/hns: Add event queue support Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-24 15:46   ` Leon Romanovsky
     [not found]     ` <20160624154643.GG23995-2ukJVAZIZ/Y@public.gmane.org>
2016-06-24 15:56       ` Doug Ledford
2016-06-24 15:56         ` Doug Ledford
2016-06-29  8:53       ` oulijun
2016-06-29  8:53         ` oulijun
2016-06-29  8:53         ` oulijun
2016-06-29 10:41         ` Leon Romanovsky
2016-06-16 14:35 ` [PATCH v10 08/22] IB/hns: Add icm support Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-17  9:58   ` Leon Romanovsky
     [not found]     ` <57677314.70909@huawei.com>
     [not found]       ` <57677314.70909-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-20  6:06         ` Leon Romanovsky
2016-06-20  6:06           ` Leon Romanovsky
     [not found]           ` <20160620060614.GC1172-2ukJVAZIZ/Y@public.gmane.org>
2016-06-20  7:49             ` Wei Hu (Xavier)
2016-06-20  7:49               ` Wei Hu (Xavier)
2016-06-20  7:49               ` Wei Hu (Xavier)
2016-06-20  9:27               ` Leon Romanovsky
     [not found]                 ` <20160620092719.GE1172-2ukJVAZIZ/Y@public.gmane.org>
2016-06-20  9:48                   ` Wei Hu (Xavier)
2016-06-20  9:48                     ` Wei Hu (Xavier)
2016-06-20  9:48                     ` Wei Hu (Xavier)
     [not found]                     ` <5767BBDF.6010309-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-20 13:04                       ` Leon Romanovsky
2016-06-20 13:04                         ` Leon Romanovsky
     [not found]                         ` <20160620130422.GA4526-2ukJVAZIZ/Y@public.gmane.org>
2016-06-21  4:37                           ` Wei Hu (Xavier)
2016-06-21  4:37                             ` Wei Hu (Xavier)
2016-06-21  4:37                             ` Wei Hu (Xavier)
     [not found]                             ` <5768C493.6000300-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-21 11:55                               ` Leon Romanovsky
2016-06-21 11:55                                 ` Leon Romanovsky
2016-06-22  3:53                                 ` Wei Hu (Xavier)
2016-06-22  3:53                                   ` Wei Hu (Xavier)
     [not found]                                   ` <576A0BAD.1070803-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-22  5:27                                     ` Leon Romanovsky [this message]
2016-06-16 14:35 ` [PATCH v10 09/22] IB/hns: Add hca support Lijun Ou
2016-06-16 14:35   ` Lijun Ou
     [not found]   ` <1466087730-54856-10-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-24 15:50     ` Leon Romanovsky
2016-06-24 15:50       ` Leon Romanovsky
2016-06-16 14:35 ` [PATCH v10 10/22] IB/hns: Add process flow to init RoCE engine Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 11/22] IB/hns: Add IB device registration Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 13/22] IB/hns: Add interface of the protocol stack registration Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 15/22] IB/hns: Add PD operations support Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 16/22] IB/hns: Add ah " Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 17/22] IB/hns: Add QP " Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 18/22] IB/hns: Add CQ " Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 19/22] IB/hns: Add memory region " Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 20/22] IB/hns: Add operation for getting immutable port Lijun Ou
2016-06-16 14:35   ` Lijun Ou
2016-06-16 14:35 ` [PATCH v10 21/22] IB/hns: Kconfig and Makefile for RoCE module Lijun Ou
2016-06-16 14:35   ` Lijun Ou
     [not found] ` <1466087730-54856-1-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-16 14:35   ` [PATCH v10 03/22] IB/hns: Add initial main frame driver and get cfg info Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35     ` Lijun Ou
     [not found]     ` <1466087730-54856-4-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-24 11:48       ` Leon Romanovsky
2016-06-24 11:48         ` Leon Romanovsky
     [not found]         ` <576E5D0B.7010003@huawei.com>
     [not found]           ` <576E5D0B.7010003-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-27  7:00             ` Leon Romanovsky
2016-06-27  7:00               ` Leon Romanovsky
     [not found]               ` <20160627070054.GK23995-2ukJVAZIZ/Y@public.gmane.org>
2016-06-27  7:29                 ` Wei Hu (Xavier)
2016-06-27  7:29                   ` Wei Hu (Xavier)
2016-06-27  7:29                   ` Wei Hu (Xavier)
2016-06-16 14:35   ` [PATCH v10 06/22] IB/hns: Add initial cmd operation Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35     ` Lijun Ou
     [not found]     ` <1466087730-54856-7-git-send-email-oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-20 13:33       ` Leon Romanovsky
2016-06-20 13:33         ` Leon Romanovsky
2016-06-21 10:50         ` Wei Hu (Xavier)
2016-06-21 10:50           ` Wei Hu (Xavier)
2016-06-21 11:28           ` Leon Romanovsky
2016-06-21 13:01             ` Wei Hu (Xavier)
2016-06-21 13:01               ` Wei Hu (Xavier)
2016-06-22  4:54               ` Leon Romanovsky
2016-06-22  6:50                 ` Wei Hu (Xavier)
2016-06-22  6:50                   ` Wei Hu (Xavier)
     [not found]                   ` <576A352F.8000700-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-22  7:28                     ` Leon Romanovsky
     [not found]                       ` <20160622072845.GE9762-2ukJVAZIZ/Y@public.gmane.org>
2016-06-22  7:33                         ` Wei Hu (Xavier)
     [not found]                           ` <576A3F49.6040305-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2016-06-22  7:41                             ` Leon Romanovsky
     [not found]                               ` <20160622074108.GF9762-2ukJVAZIZ/Y@public.gmane.org>
2016-06-22  7:48                                 ` Wei Hu (Xavier)
2016-06-16 14:35   ` [PATCH v10 12/22] IB/hns: Set mtu and gid support Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35   ` [PATCH v10 14/22] IB/hns: Add operations support for IB device and port Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35   ` [PATCH v10 22/22] MAINTAINERS: Add maintainers for HiSilicon RoCE driver Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-16 14:35     ` Lijun Ou
2016-06-24 15:55   ` [PATCH v10 00/22] Add " Leon Romanovsky
2016-06-24 15:55     ` Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160622052700.GD9762@leon.nu \
    --to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=charles.chenxin-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=gongyangming-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=haifeng.wei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=jeffrey.t.kirsher-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=jiri-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linuxarm-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=tangchaofei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=xiaokun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=yankejian-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=yisen.zhuang-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.