From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA6F3A0544 for ; Fri, 11 Nov 2022 12:39:38 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5B6A4014F; Fri, 11 Nov 2022 12:39:38 +0100 (CET) Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by mails.dpdk.org (Postfix) with ESMTP id EE2AC427F2 for ; Fri, 11 Nov 2022 12:39:36 +0100 (CET) Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 2BC86412D1 for ; Fri, 11 Nov 2022 11:39:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1668166776; bh=noFBmSI66pJsAAvW7SQNdohatlqud1Ojj0CwECv5zRA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Jd91Zx7CQLCNCUy5UM3tuGSgVxYgdZXrDKJSQ8WrCw/hKqgC+wOehi7g8nB0H+WxF X3WGgIJzWN3WDMMz2dLJU8lq8B9AVvXphnTOQKKBg/NSWqIH+KNGFa9TNuUkXHWJEv 5HHq4CI71o4GfjsKn17RXGTTFwIErgqIqiddNQuFMdx1TUbehZuopH9FKun9ATcVFT Z0qI86bXPzY/ouvgINF55hqk0Dz9WuNS9h8bD7oL6dmMqtVjyA+bI+CbPnDGZcvn/k P8a8lum5hQNdC90c1KcTyidVwOErek3nnijKlWbAf9WISQp124PooWUdYP6Q/Y4DwL MSzgPkmFI0/yg== Received: by mail-ej1-f69.google.com with SMTP id ne36-20020a1709077ba400b007aeaf3dcbcaso2385634ejc.6 for ; Fri, 11 Nov 2022 03:39:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=noFBmSI66pJsAAvW7SQNdohatlqud1Ojj0CwECv5zRA=; b=H3iAQtCDiyE6RA4gLH/4Pb6uetBruWXKdYxzYJYHs+ZEq6ecTZ5M9q9HAnsX5Oo0V2 IFtzzj/oT3ubv59aDXvNf3qnCCpdnHPVn//Ft22x3FoyhHa3e92Ny8NyuPPnQtmEZ5Fx THTXYMuvTxJUsjFl56rKWq4A7Z3yIHruAwV2Xm12ax/rIdkb60I6O6yTPvNkz3+Zm7ST A2JYGwbLuznmrm8RGmPWFKjykuuJYqRLdTlnWWSEpAZX4xSqoJnJNRpscxS8334bh0WE ZWIGXGZgaxbBXnt1fgWwWpKhLINw2/SBjGqP+3qjcscrOay5KDwBD+apHVtt1meaN+Fc p5cQ== X-Gm-Message-State: ANoB5pmZOM76TGrY5UvIDsamBdqmItvGsPmf1Mvpvn7ZI/8Diq9EBqXV zGJCKtY2WiobVOykaKV+4kvcPidmEHP2PW+WadpkvN85CxtCsHSsGbovTbVAoU1hfQL9VVKBG8X usCdctPLIHu5kJbaPgNGcrt+D X-Received: by 2002:a17:906:1d47:b0:78c:fda3:c025 with SMTP id o7-20020a1709061d4700b0078cfda3c025mr1529363ejh.461.1668166775556; Fri, 11 Nov 2022 03:39:35 -0800 (PST) X-Google-Smtp-Source: AA0mqf5LtOVvsC1f6T3tcR15yTf6R91Htoxy2Rq2F8xfbiSq5Q+FODZzz5nUoHRT1byb4qOtIHp0qQ== X-Received: by 2002:a17:906:1d47:b0:78c:fda3:c025 with SMTP id o7-20020a1709061d4700b0078cfda3c025mr1529356ejh.461.1668166775297; Fri, 11 Nov 2022 03:39:35 -0800 (PST) Received: from localhost.localdomain ([2a02:6d40:39af:c100:1891:6c61:50fd:e567]) by smtp.gmail.com with ESMTPSA id kv20-20020a17090778d400b007402796f065sm784183ejc.132.2022.11.11.03.39.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Nov 2022 03:39:34 -0800 (PST) From: christian.ehrhardt@canonical.com To: Fidaullah Noonari Cc: Dmitry Kozlyuk , dpdk stable Subject: patch 'malloc: fix storage size for some allocations' has been queued to stable release 19.11.14 Date: Fri, 11 Nov 2022 12:38:25 +0100 Message-Id: <20221111113904.1549618-8-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221111113904.1549618-1-christian.ehrhardt@canonical.com> References: <20221111113904.1549618-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 Hi, FYI, your patch has been queued to stable release 19.11.14 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/18/22. 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/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/6768e641e2faf6ebb859d38b067309bce33c23cf Thanks. Christian Ehrhardt --- >From 6768e641e2faf6ebb859d38b067309bce33c23cf Mon Sep 17 00:00:00 2001 From: Fidaullah Noonari Date: Thu, 28 Jul 2022 14:41:03 +0500 Subject: [PATCH] malloc: fix storage size for some allocations [ upstream commit f92b9ebed03dbd140a5a7b921cb898e661a59068 ] The amount of memory to allocate from the system for heap expansion was calculated in a way that may yield one page more than needed. This could hit the allocation limit from the system or EAL. The allocation would fail despite enough memory being available. In response to mail: https://inbox.dpdk.org/dev/CAEYuUWCnRZNwxiOHEeTHw0Gy9aFJRLZtvAG9g=smuUvUEMcFXg@mail.gmail.com/ A reproducer has been provided by Dmitry, see: https://inbox.dpdk.org/dev/20220922015212.03bfde66@sovereign/ Fixes: 07dcbfe0101f ("malloc: support multiprocess memory hotplug") Signed-off-by: Fidaullah Noonari Acked-by: Dmitry Kozlyuk --- lib/librte_eal/common/malloc_heap.c | 2 +- lib/librte_eal/common/malloc_mp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c index 03a263a004..0343d7ff1a 100644 --- a/lib/librte_eal/common/malloc_heap.c +++ b/lib/librte_eal/common/malloc_heap.c @@ -396,7 +396,7 @@ try_expand_heap_primary(struct malloc_heap *heap, uint64_t pg_sz, int n_segs; bool callback_triggered = false; - alloc_sz = RTE_ALIGN_CEIL(align + elt_size + + alloc_sz = RTE_ALIGN_CEIL(RTE_ALIGN_CEIL(elt_size, align) + MALLOC_ELEM_OVERHEAD, pg_sz); n_segs = alloc_sz / pg_sz; diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c index f9d558ba64..8b2f06720b 100644 --- a/lib/librte_eal/common/malloc_mp.c +++ b/lib/librte_eal/common/malloc_mp.c @@ -185,7 +185,7 @@ handle_alloc_request(const struct malloc_mp_req *m, int n_segs; void *map_addr; - alloc_sz = RTE_ALIGN_CEIL(ar->align + ar->elt_size + + alloc_sz = RTE_ALIGN_CEIL(RTE_ALIGN_CEIL(ar->elt_size, ar->align) + MALLOC_ELEM_OVERHEAD, ar->page_sz); n_segs = alloc_sz / ar->page_sz; -- 2.38.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-11-11 12:35:05.073291553 +0100 +++ 0008-malloc-fix-storage-size-for-some-allocations.patch 2022-11-11 12:35:04.717191754 +0100 @@ -1 +1 @@ -From f92b9ebed03dbd140a5a7b921cb898e661a59068 Mon Sep 17 00:00:00 2001 +From 6768e641e2faf6ebb859d38b067309bce33c23cf Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit f92b9ebed03dbd140a5a7b921cb898e661a59068 ] + @@ -18 +19,0 @@ -Cc: stable@dpdk.org @@ -23,2 +24,2 @@ - lib/eal/common/malloc_heap.c | 2 +- - lib/eal/common/malloc_mp.c | 2 +- + lib/librte_eal/common/malloc_heap.c | 2 +- + lib/librte_eal/common/malloc_mp.c | 2 +- @@ -27,5 +28,5 @@ -diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c -index 27a52266ad..d7c410b786 100644 ---- a/lib/eal/common/malloc_heap.c -+++ b/lib/eal/common/malloc_heap.c -@@ -402,7 +402,7 @@ try_expand_heap_primary(struct malloc_heap *heap, uint64_t pg_sz, +diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c +index 03a263a004..0343d7ff1a 100644 +--- a/lib/librte_eal/common/malloc_heap.c ++++ b/lib/librte_eal/common/malloc_heap.c +@@ -396,7 +396,7 @@ try_expand_heap_primary(struct malloc_heap *heap, uint64_t pg_sz, @@ -40,7 +41,7 @@ -diff --git a/lib/eal/common/malloc_mp.c b/lib/eal/common/malloc_mp.c -index 0c2624c62d..7270c2ec90 100644 ---- a/lib/eal/common/malloc_mp.c -+++ b/lib/eal/common/malloc_mp.c -@@ -250,7 +250,7 @@ handle_alloc_request(const struct malloc_mp_req *m, - return -1; - } +diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c +index f9d558ba64..8b2f06720b 100644 +--- a/lib/librte_eal/common/malloc_mp.c ++++ b/lib/librte_eal/common/malloc_mp.c +@@ -185,7 +185,7 @@ handle_alloc_request(const struct malloc_mp_req *m, + int n_segs; + void *map_addr;