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 159C5A04C1; Tue, 26 Nov 2019 13:58:01 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 11BAC3195; Tue, 26 Nov 2019 13:57:59 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 505422A5D; Tue, 26 Nov 2019 13:57:57 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Nov 2019 04:57:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,245,1571727600"; d="scan'208";a="233737953" Received: from aburakov-mobl1.ger.corp.intel.com (HELO [10.237.220.92]) ([10.237.220.92]) by fmsmga004.fm.intel.com with ESMTP; 26 Nov 2019 04:57:54 -0800 To: Thomas Monjalon , Xueming Li Cc: dev@dpdk.org, Asaf Penso , stable@dpdk.org, david.marchand@redhat.com References: <1574346302-1263-1-git-send-email-xuemingl@mellanox.com> <1911864.xaV5BFYatv@xps> From: "Burakov, Anatoly" Message-ID: Date: Tue, 26 Nov 2019 12:57:53 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <1911864.xaV5BFYatv@xps> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] malloc: fix memory element size in case of padding 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" On 25-Nov-19 11:24 PM, Thomas Monjalon wrote: > 21/11/2019 16:14, Burakov, Anatoly: >> On 21-Nov-19 2:25 PM, Xueming Li wrote: >>> This patch fixes wrong inner memory element size when joining two >>> elements. >>> >>> Fixes: af75078fece3 ("first public release") >>> Cc: stable@dpdk.org >>> >>> Signed-off-by: Xueming Li >>> --- >>> --- a/lib/librte_eal/common/malloc_elem.c >>> +++ b/lib/librte_eal/common/malloc_elem.c >>> @@ -487,6 +487,10 @@ join_elem(struct malloc_elem *elem1, struct malloc_elem *elem2) >>> else >>> elem1->heap->last = elem1; >>> elem1->next = next; >>> + if (elem1->pad) { >>> + struct malloc_elem *inner = RTE_PTR_ADD(elem1, elem1->pad); >>> + inner->size = elem1->size - elem1->pad; >>> + } >>> } >> >> Reviewed-by: Anatoly Burakov > > I don't understand this patch. > The variable inner is never used. > What am I missing? > For padded elements, malloc element has two headers - the "outer" header with empty space after it, and the "inner" header, after which the user memory actually starts. This makes it so that, when joining elements, if the outer element had a pad, we also update the inner element size to match. -- Thanks, Anatoly