From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 1546B5F1B; Tue, 26 Mar 2019 15:20:52 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2019 07:20:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,271,1549958400"; d="scan'208";a="145364527" Received: from tjozwiax-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.103.104.44]) by orsmga002.jf.intel.com with ESMTP; 26 Mar 2019 07:20:49 -0700 From: Tomasz Jozwiak To: dev@dpdk.org, stable@dpdk.org, fiona.trahe@intel.com, tomaszx.jozwiak@intel.com Date: Tue, 26 Mar 2019 15:20:48 +0100 Message-Id: <1553610048-18242-1-git-send-email-tomaszx.jozwiak@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] drivers/qat: fix qp numa node 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: Tue, 26 Mar 2019 14:20:53 -0000 This patch assigns QAT queue pair resources to the correct NUMA nodes. Any DMA'able memory should use NUMA node of QAT device rather than socket_id of the initializing process. Fixes: 98c4a35c736f ("crypto/qat: move common qat files to common dir") Fixes: a795248d740b ("compress/qat: add configure and clear functions") Signed-off-by: Tomasz Jozwiak --- drivers/common/qat/qat_qp.c | 14 ++++++++------ drivers/compress/qat/qat_comp_pmd.c | 7 ++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c index 4e66c58..935ec3f 100644 --- a/drivers/common/qat/qat_qp.c +++ b/drivers/common/qat/qat_qp.c @@ -211,16 +211,17 @@ int qat_qp_setup(struct qat_pci_device *qat_dev, } /* Allocate the queue pair data structure. */ - qp = rte_zmalloc("qat PMD qp metadata", - sizeof(*qp), RTE_CACHE_LINE_SIZE); + qp = rte_zmalloc_socket("qat PMD qp metadata", + sizeof(*qp), RTE_CACHE_LINE_SIZE, + qat_qp_conf->socket_id); if (qp == NULL) { QAT_LOG(ERR, "Failed to alloc mem for qp struct"); return -ENOMEM; } qp->nb_descriptors = qat_qp_conf->nb_descriptors; - qp->op_cookies = rte_zmalloc("qat PMD op cookie pointer", + qp->op_cookies = rte_zmalloc_socket("qat PMD op cookie pointer", qat_qp_conf->nb_descriptors * sizeof(*qp->op_cookies), - RTE_CACHE_LINE_SIZE); + RTE_CACHE_LINE_SIZE, qat_qp_conf->socket_id); if (qp->op_cookies == NULL) { QAT_LOG(ERR, "Failed to alloc mem for cookie"); rte_free(qp); @@ -260,7 +261,8 @@ int qat_qp_setup(struct qat_pci_device *qat_dev, qp->op_cookie_pool = rte_mempool_create(op_cookie_pool_name, qp->nb_descriptors, qat_qp_conf->cookie_size, 64, 0, - NULL, NULL, NULL, NULL, qat_qp_conf->socket_id, + NULL, NULL, NULL, NULL, + qat_dev->pci_dev->device.numa_node, 0); if (!qp->op_cookie_pool) { QAT_LOG(ERR, "QAT PMD Cannot create" @@ -388,7 +390,7 @@ qat_queue_create(struct qat_pci_device *qat_dev, struct qat_queue *queue, qp_conf->service_str, "qp_mem", queue->hw_bundle_number, queue->hw_queue_number); qp_mz = queue_dma_zone_reserve(queue->memz_name, queue_size_bytes, - qp_conf->socket_id); + qat_dev->pci_dev->device.numa_node); if (qp_mz == NULL) { QAT_LOG(ERR, "Failed to allocate ring memzone"); return -ENOMEM; diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c index 27c8856..1d16bc3 100644 --- a/drivers/compress/qat/qat_comp_pmd.c +++ b/drivers/compress/qat/qat_comp_pmd.c @@ -239,7 +239,8 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev, static struct rte_mempool * qat_comp_create_xform_pool(struct qat_comp_dev_private *comp_dev, - uint32_t num_elements) + struct rte_compressdev_config *config, + uint32_t num_elements) { char xform_pool_name[RTE_MEMPOOL_NAMESIZE]; struct rte_mempool *mp; @@ -264,7 +265,7 @@ qat_comp_create_xform_pool(struct qat_comp_dev_private *comp_dev, mp = rte_mempool_create(xform_pool_name, num_elements, qat_comp_xform_size(), 0, 0, - NULL, NULL, NULL, NULL, rte_socket_id(), + NULL, NULL, NULL, NULL, config->socket_id, 0); if (mp == NULL) { QAT_LOG(ERR, "Err creating mempool %s w %d elements of size %d", @@ -320,7 +321,7 @@ qat_comp_dev_config(struct rte_compressdev *dev, } } - comp_dev->xformpool = qat_comp_create_xform_pool(comp_dev, + comp_dev->xformpool = qat_comp_create_xform_pool(comp_dev, config, config->max_nb_priv_xforms); if (comp_dev->xformpool == NULL) { -- 2.7.4 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 9FA28A05D3 for ; Tue, 26 Mar 2019 15:20:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D18F85F1D; Tue, 26 Mar 2019 15:20:54 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 1546B5F1B; Tue, 26 Mar 2019 15:20:52 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2019 07:20:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,271,1549958400"; d="scan'208";a="145364527" Received: from tjozwiax-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.103.104.44]) by orsmga002.jf.intel.com with ESMTP; 26 Mar 2019 07:20:49 -0700 From: Tomasz Jozwiak To: dev@dpdk.org, stable@dpdk.org, fiona.trahe@intel.com, tomaszx.jozwiak@intel.com Date: Tue, 26 Mar 2019 15:20:48 +0100 Message-Id: <1553610048-18242-1-git-send-email-tomaszx.jozwiak@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] drivers/qat: fix qp numa node 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" Content-Type: text/plain; charset="UTF-8" Message-ID: <20190326142048.ejUOUL2XOy-AD9A3RUnISPZKI0lBXWuqOVH3kTyONTM@z> This patch assigns QAT queue pair resources to the correct NUMA nodes. Any DMA'able memory should use NUMA node of QAT device rather than socket_id of the initializing process. Fixes: 98c4a35c736f ("crypto/qat: move common qat files to common dir") Fixes: a795248d740b ("compress/qat: add configure and clear functions") Signed-off-by: Tomasz Jozwiak --- drivers/common/qat/qat_qp.c | 14 ++++++++------ drivers/compress/qat/qat_comp_pmd.c | 7 ++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c index 4e66c58..935ec3f 100644 --- a/drivers/common/qat/qat_qp.c +++ b/drivers/common/qat/qat_qp.c @@ -211,16 +211,17 @@ int qat_qp_setup(struct qat_pci_device *qat_dev, } /* Allocate the queue pair data structure. */ - qp = rte_zmalloc("qat PMD qp metadata", - sizeof(*qp), RTE_CACHE_LINE_SIZE); + qp = rte_zmalloc_socket("qat PMD qp metadata", + sizeof(*qp), RTE_CACHE_LINE_SIZE, + qat_qp_conf->socket_id); if (qp == NULL) { QAT_LOG(ERR, "Failed to alloc mem for qp struct"); return -ENOMEM; } qp->nb_descriptors = qat_qp_conf->nb_descriptors; - qp->op_cookies = rte_zmalloc("qat PMD op cookie pointer", + qp->op_cookies = rte_zmalloc_socket("qat PMD op cookie pointer", qat_qp_conf->nb_descriptors * sizeof(*qp->op_cookies), - RTE_CACHE_LINE_SIZE); + RTE_CACHE_LINE_SIZE, qat_qp_conf->socket_id); if (qp->op_cookies == NULL) { QAT_LOG(ERR, "Failed to alloc mem for cookie"); rte_free(qp); @@ -260,7 +261,8 @@ int qat_qp_setup(struct qat_pci_device *qat_dev, qp->op_cookie_pool = rte_mempool_create(op_cookie_pool_name, qp->nb_descriptors, qat_qp_conf->cookie_size, 64, 0, - NULL, NULL, NULL, NULL, qat_qp_conf->socket_id, + NULL, NULL, NULL, NULL, + qat_dev->pci_dev->device.numa_node, 0); if (!qp->op_cookie_pool) { QAT_LOG(ERR, "QAT PMD Cannot create" @@ -388,7 +390,7 @@ qat_queue_create(struct qat_pci_device *qat_dev, struct qat_queue *queue, qp_conf->service_str, "qp_mem", queue->hw_bundle_number, queue->hw_queue_number); qp_mz = queue_dma_zone_reserve(queue->memz_name, queue_size_bytes, - qp_conf->socket_id); + qat_dev->pci_dev->device.numa_node); if (qp_mz == NULL) { QAT_LOG(ERR, "Failed to allocate ring memzone"); return -ENOMEM; diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c index 27c8856..1d16bc3 100644 --- a/drivers/compress/qat/qat_comp_pmd.c +++ b/drivers/compress/qat/qat_comp_pmd.c @@ -239,7 +239,8 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev, static struct rte_mempool * qat_comp_create_xform_pool(struct qat_comp_dev_private *comp_dev, - uint32_t num_elements) + struct rte_compressdev_config *config, + uint32_t num_elements) { char xform_pool_name[RTE_MEMPOOL_NAMESIZE]; struct rte_mempool *mp; @@ -264,7 +265,7 @@ qat_comp_create_xform_pool(struct qat_comp_dev_private *comp_dev, mp = rte_mempool_create(xform_pool_name, num_elements, qat_comp_xform_size(), 0, 0, - NULL, NULL, NULL, NULL, rte_socket_id(), + NULL, NULL, NULL, NULL, config->socket_id, 0); if (mp == NULL) { QAT_LOG(ERR, "Err creating mempool %s w %d elements of size %d", @@ -320,7 +321,7 @@ qat_comp_dev_config(struct rte_compressdev *dev, } } - comp_dev->xformpool = qat_comp_create_xform_pool(comp_dev, + comp_dev->xformpool = qat_comp_create_xform_pool(comp_dev, config, config->max_nb_priv_xforms); if (comp_dev->xformpool == NULL) { -- 2.7.4