From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 97D771B5FE for ; Fri, 22 Mar 2019 15:36:12 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F173730832DE; Fri, 22 Mar 2019 14:36:11 +0000 (UTC) Received: from [10.36.112.59] (ovpn-112-59.ams2.redhat.com [10.36.112.59]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 90D9960857; Fri, 22 Mar 2019 14:36:10 +0000 (UTC) To: Xiaolong Ye , dev@dpdk.org Cc: Qi Zhang , Karlsson Magnus , Topel Bjorn References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190322130129.109964-1-xiaolong.ye@intel.com> <20190322130129.109964-3-xiaolong.ye@intel.com> From: Maxime Coquelin Message-ID: <4118b1b6-7c9b-fc7d-f74e-03c066cb5513@redhat.com> Date: Fri, 22 Mar 2019 15:36:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190322130129.109964-3-xiaolong.ye@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Fri, 22 Mar 2019 14:36:12 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH v4 2/5] lib/mbuf: introduce helper to create mempool with flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2019 14:36:13 -0000 On 3/22/19 2:01 PM, Xiaolong Ye wrote: > This allows applications to create mbuf mempool with specific flags > such as MEMPOOL_F_NO_SPREAD if they want fixed size memory objects. > > Signed-off-by: Qi Zhang > Signed-off-by: Xiaolong Ye > --- > lib/librte_mbuf/rte_mbuf.c | 29 +++++++++++++++++++----- > lib/librte_mbuf/rte_mbuf.h | 45 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 69 insertions(+), 5 deletions(-) > > +/** > + * Create a mbuf pool with flags. > + * > + * This function creates and initializes a packet mbuf pool. It is > + * a wrapper to rte_mempool functions. > + * > + * @warning > + * @b EXPERIMENTAL: This API may change without prior notice. > + * > + * @param name > + * The name of the mbuf pool. > + * @param n > + * The number of elements in the mbuf pool. The optimum size (in terms > + * of memory usage) for a mempool is when n is a power of two minus one: > + * n = (2^q - 1). > + * @param cache_size > + * Size of the per-core object cache. See rte_mempool_create() for > + * details. > + * @param priv_size > + * Size of application private are between the rte_mbuf structure > + * and the data buffer. This value must be aligned to RTE_MBUF_PRIV_ALIGN. > + * @param data_room_size > + * Size of data buffer in each mbuf, including RTE_PKTMBUF_HEADROOM. > + * @param flags > + * Flags controlling the behavior of the mempool. See > + * rte_mempool_create() for details. > + * @param socket_id > + * The socket identifier where the memory should be allocated. The > + * value can be *SOCKET_ID_ANY* if there is no NUMA constraint for the > + * reserved zone. > + * @return > + * The pointer to the new allocated mempool, on success. NULL on error > + * with rte_errno set appropriately. Possible rte_errno values include: > + * - E_RTE_NO_CONFIG - function could not get pointer to rte_config structure > + * - E_RTE_SECONDARY - function was called from a secondary process instance > + * - EINVAL - cache size provided is too large, or priv_size is not aligned. > + * - ENOSPC - the maximum number of memzones has already been allocated > + * - EEXIST - a memzone with the same name already exists > + * - ENOMEM - no appropriate memory area found in which to create memzone > + */ > +struct rte_mempool * __rte_experimental > +rte_pktmbuf_pool_create_with_flags(const char *name, unsigned int n, > + unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size, > + unsigned int flags, int socket_id); > + > /** > * Create a mbuf pool with a given mempool ops name > * > You need to add it to rte_mbuf_version.map too. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 9A96AA00E6 for ; Fri, 22 Mar 2019 15:36:14 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AFCAF1B601; Fri, 22 Mar 2019 15:36:13 +0100 (CET) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 97D771B5FE for ; Fri, 22 Mar 2019 15:36:12 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F173730832DE; Fri, 22 Mar 2019 14:36:11 +0000 (UTC) Received: from [10.36.112.59] (ovpn-112-59.ams2.redhat.com [10.36.112.59]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 90D9960857; Fri, 22 Mar 2019 14:36:10 +0000 (UTC) To: Xiaolong Ye , dev@dpdk.org Cc: Qi Zhang , Karlsson Magnus , Topel Bjorn References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190322130129.109964-1-xiaolong.ye@intel.com> <20190322130129.109964-3-xiaolong.ye@intel.com> From: Maxime Coquelin Message-ID: <4118b1b6-7c9b-fc7d-f74e-03c066cb5513@redhat.com> Date: Fri, 22 Mar 2019 15:36:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190322130129.109964-3-xiaolong.ye@intel.com> Content-Type: text/plain; charset="UTF-8"; format="flowed" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Fri, 22 Mar 2019 14:36:12 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH v4 2/5] lib/mbuf: introduce helper to create mempool with flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190322143608.Cud9qJx97W3yenZRHty1Orf6-Xc-12MYBjIVIthJ960@z> On 3/22/19 2:01 PM, Xiaolong Ye wrote: > This allows applications to create mbuf mempool with specific flags > such as MEMPOOL_F_NO_SPREAD if they want fixed size memory objects. > > Signed-off-by: Qi Zhang > Signed-off-by: Xiaolong Ye > --- > lib/librte_mbuf/rte_mbuf.c | 29 +++++++++++++++++++----- > lib/librte_mbuf/rte_mbuf.h | 45 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 69 insertions(+), 5 deletions(-) > > +/** > + * Create a mbuf pool with flags. > + * > + * This function creates and initializes a packet mbuf pool. It is > + * a wrapper to rte_mempool functions. > + * > + * @warning > + * @b EXPERIMENTAL: This API may change without prior notice. > + * > + * @param name > + * The name of the mbuf pool. > + * @param n > + * The number of elements in the mbuf pool. The optimum size (in terms > + * of memory usage) for a mempool is when n is a power of two minus one: > + * n = (2^q - 1). > + * @param cache_size > + * Size of the per-core object cache. See rte_mempool_create() for > + * details. > + * @param priv_size > + * Size of application private are between the rte_mbuf structure > + * and the data buffer. This value must be aligned to RTE_MBUF_PRIV_ALIGN. > + * @param data_room_size > + * Size of data buffer in each mbuf, including RTE_PKTMBUF_HEADROOM. > + * @param flags > + * Flags controlling the behavior of the mempool. See > + * rte_mempool_create() for details. > + * @param socket_id > + * The socket identifier where the memory should be allocated. The > + * value can be *SOCKET_ID_ANY* if there is no NUMA constraint for the > + * reserved zone. > + * @return > + * The pointer to the new allocated mempool, on success. NULL on error > + * with rte_errno set appropriately. Possible rte_errno values include: > + * - E_RTE_NO_CONFIG - function could not get pointer to rte_config structure > + * - E_RTE_SECONDARY - function was called from a secondary process instance > + * - EINVAL - cache size provided is too large, or priv_size is not aligned. > + * - ENOSPC - the maximum number of memzones has already been allocated > + * - EEXIST - a memzone with the same name already exists > + * - ENOMEM - no appropriate memory area found in which to create memzone > + */ > +struct rte_mempool * __rte_experimental > +rte_pktmbuf_pool_create_with_flags(const char *name, unsigned int n, > + unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size, > + unsigned int flags, int socket_id); > + > /** > * Create a mbuf pool with a given mempool ops name > * > You need to add it to rte_mbuf_version.map too.