From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F1A17A04B1 for ; Fri, 28 Aug 2020 12:14:08 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E9954A3; Fri, 28 Aug 2020 12:14:08 +0200 (CEST) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by dpdk.org (Postfix) with ESMTP id 250661C112 for ; Fri, 28 Aug 2020 12:14:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598609647; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=id2ChhWXEHOz4bqonlSxI85hb6+RnZM8Q2WyCTB2L2Q=; b=hLcOv+gWe69NBRqvyjA43jnvXMr/eW34paACECI+kH06DugqCAMQh3sX2CPyFNqpITOjL0 zHf+adopWl1q6+wKY8af+YwAYxqC/MqN4YtmTT45J5pzDLT5XoYk6+T3aSjs1TIhUcK/ay Fu3DQWI1ck6HJUCX/cvzqFQNFfwaHv8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-431-Qj-t22dBNoiwUaHOT5DQ9Q-1; Fri, 28 Aug 2020 06:14:03 -0400 X-MC-Unique: Qj-t22dBNoiwUaHOT5DQ9Q-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B15E88015A8; Fri, 28 Aug 2020 10:14:02 +0000 (UTC) Received: from rh.redhat.com (unknown [10.33.36.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6307F19D7C; Fri, 28 Aug 2020 10:14:01 +0000 (UTC) From: Kevin Traynor To: Yunjian Wang Cc: Bin Huang , Honnappa Nagarahalli , Yipeng Wang , dpdk stable Date: Fri, 28 Aug 2020 11:12:45 +0100 Message-Id: <20200828101308.223767-19-ktraynor@redhat.com> In-Reply-To: <20200828101308.223767-1-ktraynor@redhat.com> References: <20200828101308.223767-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'hash: fix out-of-memory handling in hash creation' has been queued to LTS release 18.11.10 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to LTS release 18.11.10 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/02/20. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/d717370c7bbf06b251bf13882708d1c4df21df13 Thanks. Kevin. --- >From d717370c7bbf06b251bf13882708d1c4df21df13 Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Wed, 22 Jul 2020 11:58:58 +0800 Subject: [PATCH] hash: fix out-of-memory handling in hash creation [ upstream commit a5f803c804c4f75ce7c736a143170c49bb7e72c9 ] The function rte_zmalloc_socket() could return NULL, the return value need to be checked. Fixes: 5915699153d7 ("hash: fix scaling by reducing contention") Reported-by: Bin Huang Signed-off-by: Yunjian Wang Reviewed-by: Honnappa Nagarahalli Acked-by: Yipeng Wang --- lib/librte_hash/rte_cuckoo_hash.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c index e76277167b..bd264b068e 100644 --- a/lib/librte_hash/rte_cuckoo_hash.c +++ b/lib/librte_hash/rte_cuckoo_hash.c @@ -142,4 +142,5 @@ rte_hash_create(const struct rte_hash_parameters *params) unsigned int no_free_on_del = 0; uint32_t *tbl_chng_cnt = NULL; + struct lcore_cache *local_free_slots = NULL; unsigned int readwrite_concur_lf_support = 0; @@ -366,7 +367,11 @@ rte_hash_create(const struct rte_hash_parameters *params) if (use_local_cache) { - h->local_free_slots = rte_zmalloc_socket(NULL, + local_free_slots = rte_zmalloc_socket(NULL, sizeof(struct lcore_cache) * RTE_MAX_LCORE, RTE_CACHE_LINE_SIZE, params->socket_id); + if (local_free_slots == NULL) { + RTE_LOG(ERR, HASH, "local free slots memory allocation failed\n"); + goto err_unlock; + } } @@ -398,4 +403,5 @@ rte_hash_create(const struct rte_hash_parameters *params) h->hw_trans_mem_support = hw_trans_mem_support; h->use_local_cache = use_local_cache; + h->local_free_slots = local_free_slots; h->readwrite_concur_support = readwrite_concur_support; h->ext_table_support = ext_table_support; @@ -439,4 +445,5 @@ err: rte_ring_free(r_ext); rte_free(te); + rte_free(local_free_slots); rte_free(h); rte_free(buckets); -- 2.26.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-08-28 11:03:26.401555412 +0100 +++ 0019-hash-fix-out-of-memory-handling-in-hash-creation.patch 2020-08-28 11:03:25.946955632 +0100 @@ -1 +1 @@ -From a5f803c804c4f75ce7c736a143170c49bb7e72c9 Mon Sep 17 00:00:00 2001 +From d717370c7bbf06b251bf13882708d1c4df21df13 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a5f803c804c4f75ce7c736a143170c49bb7e72c9 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 5f701d5792..0a6d474713 100644 +index e76277167b..bd264b068e 100644 @@ -24,2 +25,2 @@ -@@ -152,4 +152,5 @@ rte_hash_create(const struct rte_hash_parameters *params) - uint32_t *ext_bkt_to_free = NULL; +@@ -142,4 +142,5 @@ rte_hash_create(const struct rte_hash_parameters *params) + unsigned int no_free_on_del = 0; @@ -29,2 +30,2 @@ - uint32_t i; -@@ -384,7 +385,11 @@ rte_hash_create(const struct rte_hash_parameters *params) + +@@ -366,7 +367,11 @@ rte_hash_create(const struct rte_hash_parameters *params) @@ -43 +44 @@ -@@ -417,4 +422,5 @@ rte_hash_create(const struct rte_hash_parameters *params) +@@ -398,4 +403,5 @@ rte_hash_create(const struct rte_hash_parameters *params) @@ -49 +50 @@ -@@ -462,4 +468,5 @@ err: +@@ -439,4 +445,5 @@ err: